簡體   English   中英

Python - 如何用另一個列表中的字符串值替換列表中存儲的字符串的值?

[英]Python - How do you replace the values of strings stored in a list with the string values from another list?

我有搜索堆棧溢出和谷歌搜索到這個問題的解決方案,遺憾的是我還沒有找到解決方案。

我想用另一個列表中的字符串值替換列表中存儲的字符串的值。

例如,我有兩個列表:

list_a = ['file_x', 'file_x', 'file_x', 'file_x']
list_b = ['1', '2', '3', '4']

我希望結果返回:

list_c =['file_1', 'file_2', 'file_3', 'file_4']

我是python的新手,我正在努力做到這一點,我嘗試使用for循環和str.replace()但我不知道如何匹配每個數組的鍵值並替換'x'的每個元素list_a,其中包含list_b元素的字符串值。

任何有關這方面的幫助將不勝感激。

使用zip來耦合對應a s和b

>>> list(zip(list_a, list_b))
[('file_x', '1'), ('file_x', '2'), ('file_x', '3'), ('file_x', '4')]

我們可以在for循環中輕松使用這個zip對象 ,將對解包為單獨的變量ab ,然后執行a.replace('x', b)並將結果值附加到結果列表中:

>>> list_c = []
>>> for a, b in zip(list_a, list_b):
...    list_c.append(a.replace('x', b))
...
>>> list_c
['file_1', 'file_2', 'file_3', 'file_4']

這也可以寫成短列表理解:

>>> [a.replace('x', b) for a, b in zip(list_a, list_b)]
['file_1', 'file_2', 'file_3', 'file_4']

正如Moinuddin指出的那樣,如果你定義了list_a的內容,那么在這里使用格式字符串是一個更好的選擇

如果您是創建list_a格式的list_a 更好的方法是使用{}代替x並使用str.format()格式化字符串。 例如:

>>> list_a = ['file_{}', 'file_{}', 'file_{}', 'file_{}']
>>> list_b = ['1', '2', '3', '4']
>>> [a.format(b) for a, b in zip(list_a, list_b)]
['file_1', 'file_2', 'file_3', 'file_4']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM