我想使用给定的模式在两个列表中更改相同的元素。列表的元素是'xxx.yyy...'
之类的字符串。所以有效的元素是例如'aa', 'aa.1.2', '2.1.1'
。
示例:
list_1 = ['24' '1.1' '1.2' '2.13' '1.4']
list_2 = ['aa' 'bb' '1.1' '1.2' '1.3' '1.4' '1.5' '1.6' '24']
所以在这种情况下元素:
'1.1', '1.2', '1.4', '24'
其中一个列表在两个列表中很常见,必须更改为:
'1.7', '1.8', '1.9', '25'
因此保留根,只更改最后一部分。 我可以找到相同的元素是否存在,如:
for elem in list_1:
if elem in list_2:
但是如何相应地改变它们呢?
答案 0 :(得分:0)
使用我的水晶球,我确定你想要这样的东西:
def get_new_name(item):
*head, tail = item.split(".")
tail=int(tail)
head = ".".join(head)
while True:
tail += 1
yield head +"." + str(tail) if head else str(tail)
for idx, item in list1:
if item in list2:
for new in get_new_name(item):
if new not in list2 and new not in list1:
list1[idx] = new
break
花式参数解包只能在最新版本的python(3)中使用,但很容易使用其他方法进行复制。
答案 1 :(得分:0)
也许你想要创建一个新的列表,并在那里附加不在两个列表中的元素,并追加两个列表中的元素。
This is a line of text to test Bold
但这是疯狂的猜测(代码是"不漂亮"),因为你的问题还不完全清楚。