我的代码如下:
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', ')')
这是什么原因??
您不需要有一个函数,+ 运算符就是连接元组所需的全部。示例:
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)
请注意;表示输入了新的一行。如果输入没有括号,这会让事情变得更容易。
如果你知道输入类型是整数元组,你可以这样做:
tuple_str = '(1, 2, 3)'
tuple_ints = tuple(int(sub_str.strip()) for sub_str in tuple_str.strip('(').strip(')').strip().split(','))