首页 > 解决方案 > Python - 是否可以在其中创建包含集合的列表?

问题描述

是否可以在其中创建包含集合的列表?

此代码未编译(我应该改用集合字典吗?)

v = []

v.append(set(3, 2))

v[2] = set()

v[2].append(3, 1)

我正在尝试使用准 Dijkstra 算法进行图遍历。我正在尝试将邻接列表存储在列表中的集合中。这是正确的方法还是我应该使用其他数据结构?

我正在尝试将以下 C++ 转换为 Python。我可以为 Vector 使用什么数据结构?

        long long leastTimeToInterview (int n, int k, int m)
    {
       vector<set<pair<int, int>>> v (n + 1); // first = time, second = stop #

       while (m--) {
          int i, j, t; cin >> i >> j >> t;
          v[i].insert ({ t, j });
          v[j].insert ({ t, i });
       }

       set<pair<int, int>> s ({ { 0,1 } });
       unordered_set<int> done;

标签: pythonlistdictionaryset

解决方案


设置(3, 2)

这不是你定义集合的方式。set 构造函数只接受一个参数。

而是使用:

v = []
v.append({3, 2})
print(v)

输出:

[{2, 3}]

作为替代方案,您可以将任何可迭代对象传递给 set 构造函数:

set((3, 2))
set([3, 2])

推荐阅读