gpt4 book ai didi

python - 如何将字符串的长度与同一列表中的整数进行比较?

转载 作者:行者123 更新时间:2023-12-01 06:58:50 25 4
gpt4 key购买 nike

我的任务是从用户那里获取一个列表并打印出该列表中的第二大项目。

用户应该能够输入字符串或整数。

我在比较两者时遇到问题,因为在使用 max() 时出现错误。

这是迄今为止我的代码:


list_input_amount = int(input('How many items are in your list?: '))

for amount in range(list_input_amount):
list_input = input('Please enter your list item: ')
if list_input.isnumeric():
random_list.append(int(list_input))
else:
random_list.append(list_input)

print(random_list)


def second_largest():
maximum_list = set(random_list)
maximum_list.remove(max(maximum_list))

print(max(maximum_list))

second_largest()

提前感谢您的帮助

最佳答案

您可以使用字典 {} 来存储将用于比较的值,然后排序并获取第二个值。

这是获取第 n 个元素的更通用的代码:

# List comprehension
def nth_largest(values: {}, nth=0):
return [k for k,v in sorted(values.items(), key=lambda kv:kv[1], reverse=True)][nth][0]

# Two steps
def nth_largest(values: {}, nth=0):
sorted_x = sorted(values.items(), key=lambda kv: kv[1], reverse=True)
return list(sorted_x)[nth][0]


if __name__ == '__main__':
list_input_amount = int(input('How many items are in your list?: '))
dico_values = {}
for amount in range(list_input_amount):
list_input = input('Please enter your list item: ')
if list_input.isnumeric():
dico_values[int(list_input)] = int(list_input)
else:
dico_values[list_input] = len(list_input)
print(nth_largest(dico_values, 1))

关于python - 如何将字符串的长度与同一列表中的整数进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58718788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com