同时为列表中的两个元素和变量添加后缀[重复]
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 个)。现在它的可读性降低了。以上是关于同时为列表中的两个元素和变量添加后缀[重复]的主要内容,如果未能解决你的问题,请参考以下文章