如何将 2 个输入的两个元组连接在一起?

问题描述 投票:0回答:2

我的代码如下:

def concatenate_audios(a1, a2):
    audio_out = list(a1) + list(a2)
    return audio_out

audio_1 = tuple(input("Please enter a tuple: "))
audio_2 = tuple(input("Please enter a tuple: "))
audio = concatenate_audios(audio_1, audio_2)
print(audio)`

`

我的代码旨在获取音频文件的两个元组输入,然后将它们连接在一起形成一个大元组。例如,如果我输入

(1,2,3)
(4,5,6)
我想得到
(1,2,3,4,5,6)
。但我却得到了

('(', '1', ',', '2', ',', '3', ')', '(', '4', ',', '5', ',', '6', ')')

这是什么原因??

python concatenation tuples
2个回答
0
投票

您不需要有一个函数,+ 运算符就是连接元组所需的全部。示例:

audio_1 = input("Please enter a tuple: ")
audio_2 = input("Please enter a tuple: ")

exec(f"audio = {audio_1}+{audio_2}")
print(audio)

输入:(1,2,3); (4,5,6)

输出:(1,2,3,4,5,6)

这并不理想,因为它使用了 exec(),因此在输入元组时去掉括号会更容易:

audio_1 = input("Please enter a tuple: ")
audio_2 = input("Please enter a tuple: ")

audio_1 = tuple(audio_1); audio_2 = tuple(audio_2)
audio = audio_1 + audio_2

print(audio)

输入:1、2、3; 4、5、6

输出:(1,2,3,4,5,6)

请注意;表示输入了新的一行。如果输入没有括号,这会让事情变得更容易。


0
投票

如果你知道输入类型是整数元组,你可以这样做:

tuple_str = '(1, 2, 3)'
tuple_ints = tuple(int(sub_str.strip()) for sub_str in tuple_str.strip('(').strip(')').strip().split(','))
© www.soinside.com 2019 - 2024. All rights reserved.