python - 在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 中的所有复合语句,:
最后都需要 a。- 您必须先创建
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-strings;相反,您必须编写"map_{}.csv".format(i)
.
推荐阅读
- javascript - 使用 Firebase 数据填充模态
- java - 试图实现一种更有效的方式,但代码不起作用(斐波那契递归)
- c# - C# 异步 TCP 客户端在服务器断开连接后进入无限循环
- javascript - 承诺解决了,但代码没有继续
- python - mysqlclient(setup.py)的构建轮...错误
- if-statement - 以多种模式闪烁 LED(嵌入式)
- ios - 表格视图错误中的文本字段委托:索引超出范围 swift
- autodesk-forge - Revit 输出压缩文件的设计自动化为空
- javascript - 将(随机)javascript数组项插入href
- google-api - YouTube 数据 API:从 Search.list 结果集中排除直播