python - 获取字符串列表并根据逗号将其拆分为二维列表
问题描述
到目前为止,我有以下代码:
def display2dlist(data):
for i in data: #loops through list
lines = i.strip() #removing leading and trailing characters
split_lines = lines.split(", ") #splitting lines by ','
print(split_lines) #prints list
with open("python.csv", "r") as infile:
data = infile.readlines()[0:] #reads lines from file
#print(data)
display2dlist(data) #calling the function display2dlist with data list as parameter
它从 csv 文件中读取行并将每一行保存为列表。它输出这个:
['2016,London,10']
['2017,Tokyo,11']
['2018,Toronto,12']
['2018,Dubai,23']
我将如何做到这一点,而不是将每一行保存为一个大字符串。它在每个逗号处拆分行并保存多个值。所以它应该是这样的:
['2016','London','10']
['2017','Tokyo','11']
['2018','Toronto','12']
['2018','Dubai','23']
例如在我当前的代码中:
data[0][0]= '2'
data[0][1]= '0' #it is treating it as a big string and just going letter by letter
data[0][2]= '1'
data[1][0]= '2'
data[1][1]= '0'
data[1][2]= '1'
我想要它,所以当我执行前面的代码时,输出是:
data[0][0]='2016'
date[0][1]='London'
data[0][2]='10'
data[1][0]='2017'
data[1][1]='Tokyo'
data[1][2]='11'
解决方案
删除 split 方法中的多余空间并使用 thos 函数获取嵌套列表:
def get_2d(data):
listdata = []
for i in data:
split_lines = i.strip().split(",") # not ", "
listdata.append(split_lines)
return listdata
...
with open("python.csv", "r") as infile:
data = infile.readlines()[0:]
print(get_2d (data))
推荐阅读
- kubernetes - “pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125:无法列出*v1.Service:未经授权”
- ruby-on-rails - Ruby on Rails 自动双向关系不起作用
- python - joblib 结果因返回值而异
- python - 具有奇怪结构的数据框,偶数列中的变量
- javascript - AXIOS 调用在 React-Native 0.63 中给出网络错误
- wordpress - LatePoint - 1 个位置的 2 个代理
- powershell - 在 PowerShell 中捕获 Sencha CMD 命令
- c++ - 如何识别对方何时使用 PJSIP 接听了电话?
- bash - 抑制信号发生
- python - Selenium 4 Python - getDevTools() 还没有准备好?