python - 访问具有可变长度的元组列表的元素并以相同的格式保存输出

标签 python linux list tuples

我有一个如下所示的元组列表

a=[(40, 41, 42, 43), (44, 45, 46, 47, 48), (109, 110, 111, 112, 113, 114)]

每个数字代表一个和弦的 ID。每个元组代表一个部分,它可以有可变数量的和弦。

我想以这样的方式应用循环,以便我可以访问每个部分的和弦的每个 ID。最后,我必须应用另一个函数来根据 id 获取每个和弦的长度,并希望以相同的方式保存它。 例如

b=[(1.2, 1.4, 1.4, 4.3), (4.4, 1.45, 2.6, 2.7, 2.4), (1.9, 1.1, 1.8, 1.2,13, 1)]

我如何为每个元组应用这样一个带有变量计数器的循环?

我试过的是

i= len(a)
j=len(i)
 for k in range(i):
  for l in range(j):
   c =a[k][l]
   length= getLength(c) # function to get length for chord ID c
   b[k][l]= length

getLength 函数可以替换为示例中的任何数字

有什么建议吗?

最佳答案

[tuple(getLength(i) for i in tup) for tup in a]

基本上你遍历每个“部分”,这实际上是一个通过代码片段 for tup in a 的元组。对于您想要的这些“部分”中的每一个,您都可以将所需的功能 - 此处为 getLength - 应用于每个和弦。基本上 getLength(i) for i in tup 做了什么。你想要一个元组作为输出......所以只需将它包装在 tuple 函数中。


列表理解可以扩展为(但不推荐):

b = []
for tup in a:
    chord_length = []
    for id in tup:
        chord_length.append(getlength(id)
    b.append(tuple(chord_length))

关于python - 访问具有可变长度的元组列表的元素并以相同的格式保存输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37682744/

相关文章:

python - 计算列表中连续真值的长度

使用数字的 Linux Case 语句

c++ - 程序在图形 shell 中的运行速度比在命令 shell 中快

c++ - 遍历列表的逻辑。元素 "flickering"

python - 如何在 Pandas 中找到哪个值计数 n 次?

python - 使用 Python 解析 LLDP 输出

根据字典值进行 Python 3D 绘图

php - 需要将多个 pdf 合并为一个带有目录部分的 PDF

python - 查找整数列表中所有加起来等于一个数字的数字

python - 如何将此项目 append 到同一列表中,而不是每次循环时创建一个新列表?