繁体   English   中英

在python中循环遍历名称

[英]iterating through names by loop in python

例如,我需要做很多年的重复编码,

G1990 = pd.read_csv("map_1990.csv")
G1991 = pd.read_csv("map_1991.csv")
". . ."
G2015 = pd.read_csv("map_2015.csv")

其他例子是

path2001=dict(nx.all_pairs_shortest_path_length(G2001))
path2002=dict(nx.all_pairs_shortest_path_length(G2002))
path2003=dict(nx.all_pairs_shortest_path_length(G2003))
". . . "
path2015=dict(nx.all_pairs_shortest_path_length(G2015))

df2001.to_csv("path2001.csv")
df2002.to_csv("path2002.csv")        
df2003.to_csv("path2003.csv")
". . . "
df2015.to_csv("path2015.csv")

如果我可以使用循环来简化我的代码,那会很好

for i in range(1990:2015),
    G[i] = pd.read_csv("map_[i].csv")

要么

for i in range(2001:2015),
    path[i]=dict(nx.all_pairs_shortest_path_length(G[i]))

for i in range(1990:2015),
    df[i].to_csv("path[i].csv")

请帮帮我 :)

如果我可以使用循环来简化我的代码,那会很好

for i in range(1990:2015),
    G[i] = pd.read_csv("map_[i].csv")

好吧,现在您可以!

您只需要稍微修改一下语法即可。

  • :用于切片,不用于范围; 您需要range(1990, 2015)
  • 范围是“半开放式”的,因此range(1990, 2015)不包括2015。
  • for语句以及Python中的所有复合语句,最后都需要一个:
  • 您必须先创建G然后才能向其中添加内容。
  • Python的格式字符串使用{}而不是[]
  • Python的格式字符串必须用f显式标记。 1
  • 完全无意义的单字母变量名是个坏主意,即使在完全无意义的玩具示例中也是如此。 相反,它们应该是从“ 垃圾邮件”草图中提取的单词。 否则,您将被判使用C ++编程。

所以:

eggs = {}
for i in range(1990, 2016):
    eggs[i] = pd.read_csv(f"map_{i}.csv")

1.如果您使用的是Python 3.5或更早版本(包括2.7),则不能使用f字符串。 相反,您必须编写"map_{}.csv".format(i)

g = {}


for i in range(1900,2015):    
        g[i] = pd.read_csv('map_'+ str(i) + '.csv')    

是。 当然,您可以按照以下步骤进行操作:

G = {}
for i in range(1990, 2016):
    G[i] = pd.read_csv(f"map_{i}.csv")

或者,简而言之:

G = {i: pd.read_csv(f"map_{i}.csv") for i in range(1990, 2016)}

暂无
暂无

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

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