我想用名称打印130以下的数字。
我有这样的数据框
name = ["a","b","c","d","e","f","g","h"]
h = [125,120,135,115,115,130,145,130]
我尝试使用我的代码
for i in h:
if i < 130:
un_130 = [name[i], h[i]]
#print(i, un_130)
print(i)
当我打印后,结果是正确的
125
120
115
115
但是当我尝试使用print(i, un_30)
中的名称打印时,出现索引错误。
有什么建议吗?
答案 0 :(得分:8)
您可以使用zip()
并行迭代:
for i, n in zip(h, name):
if i < 130:
print(i, n)
(我不太喜欢变量的命名,尤其是i
,但我选择与问题中使用的命名保持一致。)
答案 1 :(得分:1)
好吧,所以它与@vulpex所提到的不太像python一样,但是您可以像其他编程语言一样简单地使用python的range方法进行迭代来模拟for循环的行为:
for i in range(0, len(h), 1):
if h[i] < 130:
un_130 = [name[i], h[i]]
print(i, un_130)
print(i)
但是,其他答案中提到的其他功能(例如枚举或zip)通常更适合在python中使用。
答案 2 :(得分:0)
您可以使用枚举
for idx,i in enumerate(h):
if i < 130:
print(name[idx],h[idx])
注意:只要name
和h
的长度相同