Python 如何从列表中显式选择元素

Python 如何从列表中显式选择元素,python,list,code-cleanup,Python,List,Code Cleanup,我想打印哇,漂亮,桃子 因此: 如何在一行中完成此操作,或者至少比上面更快?您可以使用operator.itemgetter 使用: 输出: print(*map(lambda x: my_list[x], [1, 5, 2])) 您可以使用列表理解返回值列表: [1,5,2]中i的我的_列表[i] 或逐个打印: 因为我在[1,5,2]中: 打印我的清单[i] 或者使用参数unpacking*运算符将生成器展平,作为1行: 为[1,5,2]中的i打印*my_list[i],sep='\n' 您

我想打印哇,漂亮,桃子

因此:

如何在一行中完成此操作,或者至少比上面更快?

您可以使用operator.itemgetter

使用:

输出:

print(*map(lambda x: my_list[x], [1, 5, 2]))

您可以使用列表理解返回值列表:

[1,5,2]中i的我的_列表[i] 或逐个打印:

因为我在[1,5,2]中: 打印我的清单[i] 或者使用参数unpacking*运算符将生成器展平,作为1行:

为[1,5,2]中的i打印*my_list[i],sep='\n'
您还可以使用列表理解

 wow nice peach
甚至

>>> [my_list[x] for x in [1, 5, 2]]
['wow', 'nice', 'peach']

如果有人喜欢没有复杂语法库的简单方法,这可能是一个解决方案

要使代码看起来干净,最好的方法是为它设置一个函数,它使代码更干净,并且具有更多的特性

代码:

输出:

在列表中调用print是一种糟糕的形式。清单理解不应该有副作用。只需使用常规for循环。
print(*map(lambda x: my_list[x], [1, 5, 2]))
 wow nice peach
>>> [my_list[x] for x in [1, 5, 2]]
['wow', 'nice', 'peach']
>>> [print(my_list[x]) for x in [1, 5, 2]]
wow
nice
peach

def printList(list, *index, all=False):
    if all:
        for item in list:
            print(item)
    else:
        for i in index:
            print(list[i])

my_list = ["zero", "wow", "peach", 3, 4, "nice", "pickle"]

printList(my_list, 1, 5, 2) # To print some elements
print("---------------------------")
printList(my_list, all=True)
wow
nice
peach
---------------------------
zero
wow
peach
3
4
nice
pickle