两个列表与替换元素的比较 Python
Two lists comparison with replacing elements Python
我有一些名为 file1
的配置文件,其中行:
if [data] in [ "data01", "data02", "data03" ] {
和另一个名为 file2
的文件,其中包含以下行:
dATa02
datA03
dAta04
来自 file1
我正在使用正则表达式来传递来自行的数据:if [data] in [ "data01", "data02", "data03" ] {
import re
with open('/file1', 'r') as f:
for l in f:
l_s = row.strip()
if 'if [data] in ' in row_s:
data1 = re.findall('"(.\w+)\"*', l_s)
print(data1)
结果我得到了一个列表data1
:
[ 'data01', 'data02", 'data03' ]
来自 file2
我正在通过跳过空行并将元素设为小写来解析数据:
with open('/file2', 'r') as f:
data2 = [l.lower() for l in (line.strip() for line in f) if l]
print(data2)
结果我得到了另一个列表 data2
:
[ 'data02', 'data03", 'data04' ]
我需要比较两个列表 data1
和 data2
,在 data1
中添加新元素并从 data2
中删除不存在的元素。结果,我知道哪些元素是 added/deleted.
在 python 中查看 sets
。
added = set(data2) - set(data1) #data04
deleted = set(data1) - set(data2) #data01
我有一些名为 file1
的配置文件,其中行:
if [data] in [ "data01", "data02", "data03" ] {
和另一个名为 file2
的文件,其中包含以下行:
dATa02
datA03
dAta04
来自 file1
我正在使用正则表达式来传递来自行的数据:if [data] in [ "data01", "data02", "data03" ] {
import re
with open('/file1', 'r') as f:
for l in f:
l_s = row.strip()
if 'if [data] in ' in row_s:
data1 = re.findall('"(.\w+)\"*', l_s)
print(data1)
结果我得到了一个列表data1
:
[ 'data01', 'data02", 'data03' ]
来自 file2
我正在通过跳过空行并将元素设为小写来解析数据:
with open('/file2', 'r') as f:
data2 = [l.lower() for l in (line.strip() for line in f) if l]
print(data2)
结果我得到了另一个列表 data2
:
[ 'data02', 'data03", 'data04' ]
我需要比较两个列表 data1
和 data2
,在 data1
中添加新元素并从 data2
中删除不存在的元素。结果,我知道哪些元素是 added/deleted.
在 python 中查看 sets
。
added = set(data2) - set(data1) #data04
deleted = set(data1) - set(data2) #data01