需要帮助在列表

时间:2017-11-22 19:40:48

标签: python list append

我的列表column_names的值低于

 column_names = ['Large Cap', 'Mid Cap', 'Small Cap', 'Value']

我需要创建一个包含以下输出的列表。重复值并将字符串(_PE& _book)附加到列表中的值。 预期产出:

column_names_PE =  ['Large Cap_PE', 'Large Cap_book','Mid Cap_PE','Mid Cap_book' 'Small Cap_PE', 'Small Cap_book' 'Value_PE','Value_book']

我可以使用代码[s + "_PE" for s in column_names]附加字符串。但不确定如何复制和追加字符串。谁能帮帮我吗。

4 个答案:

答案 0 :(得分:2)

您可以遍历column_names并附加item + "_PE"item + "_book"的值:

column_names = ['Large Cap', 'Mid Cap', 'Small Cap', 'Value']

column_names_PE = []

for item in column_names:
  column_names_PE.append(item + "_PE")
  column_names_PE.append(item + "_book")

print(column_names_PE)
# ['Large Cap_PE', 'Large Cap_book', 'Mid Cap_PE', 'Mid Cap_book',
#  'Small Cap_PE', 'Small Cap_book', 'Value_PE', 'Value_book']

答案 1 :(得分:2)

简单的列表理解会让你更接近:

>>> [[c + '_PE', c + '_book'] for c in column_names]
[['Large Cap_PE', 'Large Cap_book'], ['Mid Cap_PE', 'Mid Cap_book'], ['Small Cap_PE', 'Small Cap_book'], ['Value_PE', 'Value_book']]

要展平嵌套列表,您可以使用chain中的itertools

>>> from itertools import chain
>>> list(chain.from_iterable([[c + '_PE', c + '_book'] for c in column_names]))
['Large Cap_PE', 'Large Cap_book', 'Mid Cap_PE', 'Mid Cap_book', 'Small Cap_PE', 'Small Cap_book', 'Value_PE', 'Value_book']

答案 2 :(得分:2)

如果你有:

column_names = ['Large Cap', 'Mid Cap', 'Small Cap', 'Value']
suffixes = ["_PE", "_book"]

要创建带后缀的列表,您可以执行以下操作:

使用经典循环:

column_names_PE = []
for column_name in column_names:
    for suffix in suffixes:
        column_names_PE.append(column_name + suffix)

在理解中使用列表:

column_names_PE = [column_name + suffix
                   for column_name in column_names
                   for suffix in suffixes]

你得到:

['Large Cap_PE',
 'Large Cap_book',
 'Mid Cap_PE',
 'Mid Cap_book',
 'Small Cap_PE',
 'Small Cap_book',
 'Value_PE',
 'Value_book']

答案 3 :(得分:1)

[item for sublist in [(s + "_PE",s + "_book") for s in column_names] for item in sublist]

你可以尝试这个列表理解,它附加一个元组,然后展平列表。结果:

['Large Cap_PE',
 'Large Cap_book',
 'Mid Cap_PE',
 'Mid Cap_book',
 'Small Cap_PE',
 'Small Cap_book',
 'Value_PE',
 'Value_book']