同时为列表中的两个元素和变量添加后缀[重复]

Posted

技术标签:

【中文标题】同时为列表中的两个元素和变量添加后缀[重复]【英文标题】:Adding a suffix to both elements in a list and to a variable at the same time [duplicate] 【发布时间】:2021-05-05 17:22:59 【问题描述】:

假设我有一个字符串列表:

myList = ['apple','banana','orange']

另一个字符串保存到一个变量中:

myVariable = 'fudge'

我想将后缀_df2 添加到myList 中的每个元素以及myVariable。因此,我希望我的结果如下所示:

>> myList
['apple_df2', 'banana_df2', 'orange_df2']

>> myVariable
'fudge_df2'

目前我正在使用以下代码实现此目的:

myList = [fruit + '_df2' for fruit in myList]
myVariable = myVariable + '_df2'

但是,我想知道,由于我两次都添加了相同的后缀,有没有办法将这两个步骤合二为一?

【问题讨论】:

没有办法一步完成(可能是一行,但这不是一个好的解决方案)。虽然如果你想 DRY,只需将你的后缀放入变量中。除此之外,您的方式是最佳的。 它们似乎是独立的、不相关的操作。我认为你能做的最好的是将'_df2 保存到一个变量中,这样你以后就不需要在多个地方更改它了。否则,我会像你一样做。 谢谢! @YevhenKuzmovych 为什么将它放在一行中是一个不好的解决方案? @phoebe_albeduddel 这样做绝对没有任何好处。它只会降低可读性。 感谢大家。我只会把它保留为两条线。 【参考方案1】:

创建一个以你的单例项目为首的列表,普遍应用修改,然后以相同的顺序解包。

myVariable, *myList = [x + '_df2' for x in [myVariable, *myList]]

不过,我可能仍然更喜欢两行解决方案。您不是只是为每个元素附加相同的值;您还需要保留原始列表的列表结构。

【讨论】:

星级分配在PEP 448 中进行了介绍 也适用于其他方式:*myList,myVariable=[e+addition for e in myList+[myVariable]]【参考方案2】:

您可以执行以下操作,但正如 @YevhenKuzmovych 所说,这不是一个好的解决方案。

myList, myVariable = [fruit + '_df2' for fruit in myList], myVariable + '_df2'

【讨论】:

这样做绝对没有任何好处。那里仍然有两个操作(如果计算打包,拆包,则为 3 或 4 个)。现在它的可读性降低了。

以上是关于同时为列表中的两个元素和变量添加后缀[重复]的主要内容,如果未能解决你的问题,请参考以下文章

合并列表与CUDA中的重复键

python3检查列表、元组、字符串中的重复元素

如何在保留顺序的同时删除列表中的重复元素?

python中删除列表中的重复内容

迭代Python列表中的每两个元素[重复]

拆分两个元素的元组并添加到熊猫数据框[重复]