显示我的lis中每个元素的名称

2024-06-16 13:31:16 发布

您现在位置:Python中文网/ 问答频道 /正文

更新:好的,我对这个问题做了彻底的修改。同样的问题,但现在我实现了自己的代码。你知道吗

首先,所有a、b、c、d和e都是一个数据帧中的列,我一次只对3个组合进行排列,如下所示:

data = list(iter.permutations([a, b, c, d, e], 3)

然后,我执行以下操作以使用数据框中的特定行在图形上查找单个点:

specData = list(iter.permutations(spec[a.name], spec[b.name], spec[c.name], 
                                  spec[d.name], spec[e.name], 3)

然后,由于我的排列,我将循环显示每个可能的图形。所有这些都在我的代码中工作并正确显示它们。我省略了创建图表格式的非必要部分,因为在这个问题中,这些都不重要:

for i in range(len(data)):

    plt.scatter(data[i][0] - data[i][1], data[i][0] - data[I][2], edgecolors=‘b’)

    plt.scatter(specData[i][0] - specData[i][1], specData[i][0] - specData[i][2], 
                edgecolors=‘r’)

在我以前使用数据帧的图形中,我可以通过如下方式创建标签并逐个绘制它们来显示标签的名称:

    plt.xlabel(a.name + ‘-‘ + b.name)
    plt.ylabel(a.name + ‘-‘ + c.name)

上面标签的输出在图形的x和y标签上如下所示:

a-b
a-c

现在,我不知道如何像对待数据帧那样用列表来显示名称,尤其是每当我在列表中循环一个新元组时,它将是“随机”的,所以我不能硬编码它为a、b、c、d或e,因为我不知道。我本来打算用字典,但我不知道该怎么办。你知道吗


Tags: 数据代码name名称图形dataplt标签
3条回答

试试这个:

from string import ascii_lowercase
alphabet=0
for i in data:
   for j in i:   
       print(ascii_lowercase[alphabet] + " : " + str(j))
       alphabet += 1

我还有一些问题,比如如果你的列表长度超过了字母大小怎么办?另外,如果您只想打印而不想存储,那么这个答案也是有效的。你知道吗

您可以用data压缩named_list,并为每个数据元素分配一个名称。你知道吗

代码:

from string import ascii_lowercase


def do():
    data = [[(0, 1, 2), (3, 4, 5), (6, 7, 8)],
            [(0, 1, 2), (6, 7, 8), (3, 4, 5)],
            [(3, 4, 5), (6, 7, 8), (0, 1, 2)]]

    featured_list = list(map(lambda x: list(zip(ascii_lowercase, x)), data))

    for items in featured_list:
        for item in items:
            print(f"{item[0]}: {item[1]}")


if __name__ == '__main__':
    do()

输出:

a: (0, 1, 2)
b: (3, 4, 5)
c: (6, 7, 8)
a: (0, 1, 2)
b: (6, 7, 8)
c: (3, 4, 5)
a: (3, 4, 5)
b: (6, 7, 8)
c: (0, 1, 2)

不确定这是否是您想要的,但是您可以将每个tuple匹配为key,并根据需要添加值。i、 电子邮件:

data = [[(0, 1, 2), (3, 4, 5), (6, 7, 8)], 
        [(0, 1, 2), (6, 7, 8), (3, 4, 5)], 
        [(3, 4, 5), (6, 7, 8), (0, 1, 2)]]

dict1 = {(0, 1, 2): 'a',  (3, 4, 5): 'b',  (6, 7, 8): 'c'}

for row in data:
    print(', '.join(['%s:%s' % (dict1[elem], elem) for elem in row if elem in dict1]))

相关问题 更多 >