将文本文件中的字符串(已经是元组格式)转换为元组列表
Convert strings in a text file (already in tuple format) to list of tuples
我有一个 txt 文件,"first.txt," 看起来像这样:
(abc, bcd)
(cde, sos)
(feg, rof)
etc.
我还有另一个列表(让我们称之为 "second"),看起来像这样,已经是元组格式(由两个字符串组成的元组):
('sos','ten')
('rof','bcd')
etc.
我想比较这两个列表并找出它们之间的区别。为此,我需要将 "first.txt" 转换为与我的列表 "second."
相同的元组格式
我尝试做一些列表理解,然后将字符串转换为元组并拆分为“\n”,但这只是给出 ('(abc, bcd)', ''),而我想要一个元组包含两个字符串。
有什么建议吗?
如果 none 的文本元素包含 (
、)
或 ,
,您可以使用常规字符串函数来 "parse" 元组,像这样:
content = """\
(abc, bcd)
(cde, sos)
(feg, rof)
"""
result = [tuple(line.strip('()').split(",")) for line in content.splitlines()]
print(result)
输出:
[('abc', ' bcd'), ('cde', ' sos'), ('feg', ' rof')]
我知道 eval()
是邪恶的,但你可以试试这个:
>>> lst = []
>>> with open('second.txt') as f:
... for line in f:
... lst.append(eval(line, {}, {}))
...
>>> lst
[('sos', 'ten'), ('rof', 'bcd')]
您的 first.txt
并不是真正的 tuple
str
格式。
我有一个 txt 文件,"first.txt," 看起来像这样:
(abc, bcd)
(cde, sos)
(feg, rof)
etc.
我还有另一个列表(让我们称之为 "second"),看起来像这样,已经是元组格式(由两个字符串组成的元组):
('sos','ten')
('rof','bcd')
etc.
我想比较这两个列表并找出它们之间的区别。为此,我需要将 "first.txt" 转换为与我的列表 "second."
相同的元组格式我尝试做一些列表理解,然后将字符串转换为元组并拆分为“\n”,但这只是给出 ('(abc, bcd)', ''),而我想要一个元组包含两个字符串。
有什么建议吗?
如果 none 的文本元素包含 (
、)
或 ,
,您可以使用常规字符串函数来 "parse" 元组,像这样:
content = """\
(abc, bcd)
(cde, sos)
(feg, rof)
"""
result = [tuple(line.strip('()').split(",")) for line in content.splitlines()]
print(result)
输出:
[('abc', ' bcd'), ('cde', ' sos'), ('feg', ' rof')]
我知道 eval()
是邪恶的,但你可以试试这个:
>>> lst = []
>>> with open('second.txt') as f:
... for line in f:
... lst.append(eval(line, {}, {}))
...
>>> lst
[('sos', 'ten'), ('rof', 'bcd')]
您的 first.txt
并不是真正的 tuple
str
格式。