gpt4 book ai didi

python - 如何在元组中复制元素 n 次

转载 作者:行者123 更新时间:2023-12-03 21:43:10 24 4
gpt4 key购买 nike

我想得到一个由 n 个元组组成的元组,但我不知道如何去做。
从这里 ([1, 25, 30], 'a')我试过这个([1, 25, 30], 'a')*3但它不起作用。
基本上我想得到这样的反馈:

Out[29]: 
(([1, 25, 30], 'a'),
([1, 25, 30], 'a'),
([1, 25, 30], 'a'),
([1, 25, 30], 'a'),
([1, 25, 30], 'a'),
([1, 25, 30], 'a'),
([1, 25, 30], 'a'),
([1, 25, 30], 'a'))

最佳答案

在“乘法”之前,您必须将元组包装到另一个单元素元组中:

>>> ([1, 25, 30], 'a') * 3
([1, 25, 30], 'a', [1, 25, 30], 'a', [1, 25, 30], 'a')
>>> (([1, 25, 30], 'a'),) * 3
(([1, 25, 30], 'a'), ([1, 25, 30], 'a'), ([1, 25, 30], 'a'))
但请记住,这将创建一个包含 3 个对同一元组的引用的元组。对于纯的、不可修改的元组,这很好,但你的元组有可变部分,如果修改,将在所有“不同”引用中修改。
>>> t = (([1, 25, 30], 'a'),) * 3
>>> t[0][0][1] = 42
>>> t
(([1, 42, 30], 'a'), ([1, 42, 30], 'a'), ([1, 42, 30], 'a'))
如果你不想要这个,最好使用 tuple使用生成器表达式:
>>> t = tuple( ([1, 25, 30], 'a') for _ in range(3))
>>> t[0][0][1] = 42
>>> t
(([1, 42, 30], 'a'), ([1, 25, 30], 'a'), ([1, 25, 30], 'a'))

关于python - 如何在元组中复制元素 n 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66152734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com