在Python中用引号括住许多字符串

2024-03-29 04:46:19 发布

您现在位置:Python中文网/ 问答频道 /正文

Afghanistan
Albania
Algeria
etc

我有一个国家的名单,如上所述,从一个txt文件复制。我想创建一个名为countries的列表,其中包含所有这些条目,而不必一个接一个地将每个条目用引号括起来并添加逗号。你知道吗

如何以高效快捷的方式实现这一点?你知道吗

最终列表应如下所示:

countries = [
"Afghanistan",
"Albanian",
"Algeria"....
]

有2+个单独字符串的行,例如Puerto Rico。splitlines()似乎将两个单词分开,而不是为每一行创建一个列表条目。你知道吗


Tags: 文件txt列表方式etc条目国家countries
3条回答

引号和逗号用于在代码中指定为文本的列表和字符串。对于以编程方式读取的数据,不需要这样做。你知道吗

只要读一下台词,去掉后面的新词就行了。你知道吗

with open('countries.text') as src:
    countries = [row.strip('\n') for row in src]

假设您的条目是test.txt,并且希望在out.txt中输出:

if __name__ == '__main__':
    with open('test.txt', 'rb') as fr:
        reader = fr.readlines()
        with open('out.txt', 'wb') as fw:
            for line in reader:
                fw.write('\''+line.strip('\n').strip('\r')+'\'\n')

这将写入out.txt

'Afghanistan'
'Albania'
'Algeria'
'etc'

或者如果你想把它列在一个列表中:

if __name__ == '__main__':
    with open('test.txt', 'rb') as fr:
        reader = fr.readlines()
        res = list()
        for line in reader:
            res.append(line.strip('\n').strip('\r'))

最后,我们有

res = ['Afghanistan', 'Albania', 'Algeria', 'etc']

你不需要在每个条目上加引号和逗号,只要把每个条目用三个引号括起来,然后分开。你知道吗

text = \
'''
Afghanistan
Albania
Algeria
'''
my_list = []
for line in text.strip().split('\n'):
    my_list.append(line)

print my_list
['Afghanistan', 'Albania', 'Algeria']

或紧凑型:

my_list = \
'''
Afghanistan
Albania
Algeria
'''.split()

相关问题 更多 >