根据用户输入逐项比较两个列表,并返回列表之间较大的值



我之前对python或编程没有任何了解,也没有边学习边学习。以下是我正在进行的工作,我只是不确定如何进行。

编写一个函数,将两个浮点列表作为输入。列表必须具有相同的长度,并且您可以依靠用户始终正确地提供相同长度的列表。该函数应确定第一列表中大于第二列表中对应项目的项目数(即,第一列表中位置5处的项目是否大于第二名单中位置5的项目(。第一个列表中较大的值的数目应作为整数返回(因此,如果第一个列表没有项目大于第二个列表中的相应项目,则返回0;如果有5个项目大于其在第二个名单中的相应项,则返回5(。

list_1 = []
list_2 = []
# asking number of elements to put in list_1
num_1 = int(input("Enter number of elements in list_1: "))
# iterating till num to append elements in list
for i in range(1, num_1 + 1):
ele = int(input("Enter elements: "))
list_1.append(ele)

# print maximum element
print("Largest element is:", max(list_1))
# asking number of elements to put in list_2
num_2 = int(input("Enter number of elements in list_2: "))
# iterating till num to append elements in list
for i in range(1, num_2 + 1):
ele = int(input("Enter elements: "))
list_2.append(ele)

# print maximum element
print("Largest element is:", max(list_2))

我认为这是完全错误的,因为我要逐一比较两个列表中的每一项。有什么建议吗?非常感谢。

您的代码正确地获得了用户输入,因此我将在那之后讨论任务。

(但你可以写for i in range(1, num_1 + 1):而不是for i in range(num_1):。在python习惯用法中,人们甚至会写for _ in range(num_1):。(

其思想是生成一个最初为0的变量counter。同时在两个列表上循环,当条件(list_1中的元素大于list_2中的相应元素(时,我们递增计数器。

实现这一点的最基本代码如下:

list_1 = [1,3,5,7]
list_2 = [6,4,2,0]
count = 0
for i in range(len(list_1)):
if list_1[i] > list_2[i]:
count += 1 # add one
print(count) # 2

这可能就是任务所要寻找的。但人们通常不喜欢看到for ... in range(len(...)):模式。使用zip:是一种稍微更像蟒蛇的方法

count = 0
for x, y in zip(list_1, list_2):
if x > y:
count += 1

在我看来,更好的是使用列表(或生成器(理解,而不是显式的for:

count = sum(x > y for x, y in zip(list_1, list_2))

相关内容

  • 没有找到相关文章

最新更新