data = [10,90,20,80,30,40,70,60] 的a_list = [A,B,C,d,E,F,G,H] 如何查找数据中超过50的所有值。 接下来如何打印以便显示 B:90 d:80 H:60 G:70。我还没有使用枚举。
答案 0 :(得分:2)
如果您只想打印高于50的所有值,则可以执行简单的循环。
data = [10, 90, 20, 80, 30, 40, 70, 60]
for value in data:
if value > 50:
print(value)
如果需要索引,请使用此代码。 enumerate
会给你一个自动计数器。
data = [10, 90, 20, 80, 30, 40, 70, 60]
for index, value in enumerate(data):
if value > 50:
print(index)
如果您需要一个索引列表来打印值(那时您的问题不清楚),那么构建此列表并循环遍历它。
data = [10, 90, 20, 80, 30, 40, 70, 60]
indexes = [index for index, value in enumerate(data) if value > 50]
for index in indexes:
print(data[index])
根据评论中的问题,您可以执行以下操作(基于最后的解决方案)。
data = [10, 90, 20, 80, 30, 40, 70, 60]
characters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
indexes = [index for index, value in enumerate(data) if value > 50]
for index in indexes:
print('{}: {}'.format(characters[index], data[index]))
此代码使用两个列表的索引。
如果这是作业并且您不能使用enumerate
,则必须使用标准for
循环构建索引列表。
indexes = []
for index in range(len(data)):
if data[index] > 50:
indexes.append(index)
pythonic解决方案就是这样的。
data = [10, 90, 20, 80, 30, 40, 70, 60]
characters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
for char, value in zip(characters, data):
if value > 50:
print('{}: {}'.format(char, value))
答案 1 :(得分:1)
如果您希望列表中的元素大于50,您只需使用列表推导:
[el for el in lst if el>50]
其中lst是您的输入列表。
如果您还想要这些元素的索引,您可以:
[(i,el) for (i,el) in enumerate(lst) if el>50]
会给你一个元组列表(索引,元素)
答案 2 :(得分:0)
你想要一个if循环;如果x大于其中一个数字,打印出来吗? 例如:
myList = list(range(0,100))
for numb in myList:
if numb > 50:
print numb
老实说,我不确定OP想要做什么。但这只是一个例子。
答案 3 :(得分:0)
如果你想使用enumerate()
,并且你想存储50以上数字的索引和值本身,一种方法是这样做:
>>> a = [1,2,3,4,5,50,51,3,53,57]
>>> b, c = zip(*[(d, x) for d, x in enumerate(a) if x > 50])
>>> print b
(6, 8, 9)
>>> print c
(51, 53, 57)
Enumerate接受任何支持迭代的对象,并在调用迭代器的(count, value)
方法时返回元组next()
。由于enumerate()
默认开始计数为0,并且每次迭代将计数递增1,我们可以使用它来计算迭代当前所在的数组的索引。
现在,我们的列表理解是返回一个元组列表,如果我们要打印我们将得到的理解:
>>> print [(d, x) for d, x in enumerate(a) if x > 50]
[(6, 51),(8, 53),(9, 57)]
给定两个数组时,Zip会创建一个元组列表,例如:
>>> f = [1, 2, 3]
>>> g = [4, 5, 6]
>>> zipped = zip(f, g)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
与*
运算符一起使用时,zip()
将"解压缩"一个清单。
所以,当我们"解压缩"列表理解,返回两个元组。
希望这有帮助!