繁体   English   中英

python中的For循环-初学者

[英]For loop in python - beginner

我正在尝试解决一个项目,我必须在列表中计算年份,但是我在理解两者之间的区别时遇到了问题

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)

因此,如果我使用第一句话,那么代码将正常运行并显示正确的答案,但是如果我使用第二句话,它将为我提供从何处不知道的随机数。

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

for n in data: years = n[1]

years是单个对象,始终使用n [1]更新,最后将成为数据中最后一个元素的索引[1]

此代码years = [n[1] for n in data]输出是列表。 这段代码

for n in data:
     years = n[1]

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM