我之前对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))