将字符串转换为Python中的列表
我有一个文本文件,里面有一串数字,我想把它们转换成一个列表。目前我只能把所有的数字放在列表的第一个位置,但我希望每个数字都能单独成为列表中的一个元素。有没有人知道在Python中怎么简单地做到这一点?
1000
2000
3000
4000
变成
['1000','2000','3000','4000']
5 个回答
1
>>> open("myfile.txt").readlines()
>>> lines = open("myfile.txt").readlines()
>>> lines
['1000\n', '2000\n', '3000\n', '4000\n']
>>> clean_lines = [x.strip() for x in lines]
>>> clean_lines
['1000', '2000', '3000', '4000']
或者,如果你已经有一个字符串,可以使用 str.split
方法:
>>> myfile
'1000\n2000\n3000\n4000\n'
>>> myfile.splitlines()
['1000', '2000', '3000', '4000', '']
你可以用列表推导式(或者普通的 for
循环)来去掉空元素。
>>> [x for x in myfile.splitlines() if x != ""]
['1000', '2000', '3000', '4000']
1
这段代码的意思是……
首先,它定义了一个变量,这个变量用来存储一些信息。接下来,它可能会进行一些操作,比如计算或者判断条件。最后,代码会输出结果,告诉我们这个变量的值是什么。
在编程中,变量就像一个盒子,我们可以把东西放进去,也可以随时拿出来查看。操作就像是在这个盒子上做一些事情,比如加法、减法或者比较两个盒子里的东西。
总之,这段代码的主要目的是处理一些数据,并给出一个结果。希望这个解释能帮助你更好地理解代码的功能!
with open('file.txt', 'rb') as f:
data = f.read()
lines = [s.strip() for s in data.split('\n') if s]
24
要把一个Python字符串转换成列表,可以使用 str.split
方法:
>>> '1000 2000 3000 4000'.split()
['1000', '2000', '3000', '4000']
split
方法有一些选项,可以查一下以了解更高级的用法。
你也可以用文件对象的 readlines()
方法把文件读入一个列表,这个方法会返回文件中的每一行作为列表的元素。例如,如果你想从文件中获取一个整数列表,可以这样做:
lst = map(int, open('filename.txt').readlines())
附注:在评论中可以看到一些其他的方法来实现同样的功能。有些方法比我提供的更好(更符合Python的风格)。