Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在列表中拆分节?_Python_List - Fatal编程技术网

Python 如何在列表中拆分节?

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,,

好的,我有一个名为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,,,,,,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]