Python 如何在列表中拆分节?
好的,我有一个名为names的列表,列表中还有其他单词,但这是names[0]的结果Python 如何在列表中拆分节?,python,list,Python,List,好的,我有一个名为names的列表,列表中还有其他单词,但这是names[0]的结果 Chen,David,M,334791530,,11Z,,16770712,,,,,,00015956753, Chen,Peter,M,321564726,,11B,,19979810,,,,,,00012446698, Chung,Rowan,M,32355988,,11T,,17890708,,,,,,00012127821, Chung,Kyle,M,387638355,,10U,,19970317,,
Chen,David,M,334791530,,11Z,,16770712,,,,,,00015956753,
Chen,Peter,M,321564726,,11B,,19979810,,,,,,00012446698,
Chung,Rowan,M,32355988,,11T,,17890708,,,,,,00012127821,
Chung,Kyle,M,387638355,,10U,,19970317,,,,,,00015604870,
Fan,Mark,M,34217543,,10U,,19707713,,,,,,00015799079,
如何拆分名称[0],使其只显示姓氏、名和性别
以下是我的其余代码:
file = open('CASS.txt', 'r')
f = file.readlines()
file.close()
for line in f:
if line.find('ICS3M105')>=0:
names = line.split()
for name in names[0]:
if name in range(0,1):
print(names)
您可以使用列表理解在逗号上拆分,然后使用切片将拆分操作的元素[0]
索引到[2]
(包括)
>>> [i.split(',')[:3] for i in s.split('\n')]
[['Chen', 'David', 'M'],
['Chen', 'Peter', 'M'],
['Chung', 'Rowan', 'M'],
['Chung', 'Kyle', 'M'],
['Fan', 'Mark', 'M']]
或者使用对即将到来的任务更可靠的模块
import csv
with open('CASS.txt', 'r') as f:
for row in csv.reader(f):
name_last, name_first, gender = row[0:3]
三个旁注:(1)line.find('ICS3M105')>=0
比第
行中的'IC3SM105'可读性好得多。(2) 如果name在范围(0,1)
中基本上意味着如果name==0
,并且假设name
是一个字符串,那么它总是会为false。(3) 这里没有理由使用readlines
。在关闭文件之前,只需循环文件中的行:
。(另外,使用with
语句来摆脱显式的关闭
)此外,如果要解析CSV文件,请查看模块行提供一个(最后,第一,性别,somenumber',somecode',someothernumber,…)
,而无需您做任何额外的工作。您只需做[:3]
即可,而不是[0:3]
@rchang谢谢!
for line in f:
names = line.split()
print names[0].split(',')[0:3]
with open('CASS.txt', 'r') as f:
for line in f:
name_last, name_first, gender = line.split(',')[0:3]
import csv
with open('CASS.txt', 'r') as f:
for row in csv.reader(f):
name_last, name_first, gender = row[0:3]