for python中的循环 - 初学者

时间:2017-12-08 14:58:26

标签: python

我正在尝试解决一个项目,我必须在列表中计算年数,但我在理解

之间的区别时遇到了问题
years = [n[1] for n in data] 

for n in data:
         years = n[1]

这是身体的其他部分

for m in years:
    if m not in year_counts:
        year_counts[m] = 0
    year_counts[m] += 1

print(year_counts)

因此,如果我使用第一句话,那么代码将正常运行并显示正确的答案,但如果我使用第二个代码,它将给我随机数字,我不知道从哪里。

4 个答案:

答案 0 :(得分:1)

years = [n[1] for n in data] - 年份现在是一个列表,每个元素都是数据中元素的索引[1]

for n in data: years = n[1]

years是一个单个对象,总是用n [1]更新,最后是数据中最后一个元素的索引[1]

答案 1 :(得分:0)

此代码years = [n[1] for n in data]输出为list。 这段代码

for n in data:
     years = n[1]

输出是包含最后一个值的单个变量。

答案 2 :(得分:0)

for n in data:
         years = n[1]
每个n 1都会替换

years。 "随机"您看到的条目可能是数据中最后一个条目的第二个字母。

你可以这样做来匹配理解:

years = list()
data = ['a1', 'a2', 'a3', 'a4']
for n in data:
  years.append(n[1])  # years = ['1', '2', '3', '4']

years = [n[1] for n in data]

总体上会更快。

对于您的整体脚本,您可以考虑使用map

答案 3 :(得分:0)

li = [1, 2, 3, 4, 5, 6, 7]
# For loop uses for list iteration.
# for loop iterate every item in a list.

for i in li: 
    print i

>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> 6
>>> 7