Python-将集合转换为列表
在下面的代码行中,我正在尝试处理Python-将集合转换为列表,python,list,set,Python,List,Set,在下面的代码行中,我正在尝试处理跟踪id,这是一个集合,它不允许索引 track_name = sp.track(track_ids[i])['name'] 如何将track\u id转换为列表,以便为其编制索引 编辑:这是完整的功能: def filterBelowThreshold(product, filter_name, track_ids, values, xsongs, threshold): print product.upper(), 'PLAYLIST:'
跟踪id
,这是一个集合
,它不允许索引
track_name = sp.track(track_ids[i])['name']
如何将track\u id
转换为列表
,以便为其编制索引
编辑:这是完整的功能:
def filterBelowThreshold(product, filter_name, track_ids, values,
xsongs, threshold):
print product.upper(), 'PLAYLIST:'
for i, x in enumerate(values):
if x < threshold:
track_name = sp.track(track_ids[i])['name']
#append minding foreign track names
xsongs.add(track_name.encode("utf-8"))
print product.upper(),'-', "{} = {}".format(track_name.encode("utf-8"), x), filter_name
def filterBelowThreshold(产品、过滤器名称、跟踪ID、值、,
歌曲(基本要求):
打印product.upper(),“播放列表:”
对于枚举中的i,x(值):
如果x<阈值:
track_name=sp.track(track_id[i])['name']
#附加minding外来曲目名称
添加(音轨名称编码(“utf-8”))
打印product.upper(),'-',“{}={}”.format(track_name.encode(“utf-8”),x),filter_name
我想说:
[x for x in track_ids][index]
无需执行循环,只需使用
列表
函数调用包装集合
,请参见下面的示例
#Index Doesn't work with set
>>> set([1,2,3])[1]
Traceback (most recent call last):
File "python", line 1, in <module>
TypeError: 'set' object does not support indexing
#convert set to list like this and indexing would work.
>>> list(set([1,2,3]))[1]
=> 2
#索引不适用于集合
>>>集合([1,2,3])[1]
回溯(最近一次呼叫最后一次):
文件“python”,第1行,在
TypeError:“set”对象不支持索引
#像这样将集合转换为列表,索引就可以了。
>>>列表(集合([1,2,3]))[1]
=> 2
您可以通过调用函数list(track\u id)
将集合
转换为列表
请注意,此新列表中的元素没有有意义的顺序,因此,假设您认为值中的元素与跟踪ID
中的元素有一定的相关性,那么像使用枚举在另一个列表上的i
索引那样访问它是不正确的
但是,如果您确实想获得值
和跟踪ID
配对(可能是随机配对),您可以尝试以下更简洁的方式:
for val, track_id in zip(values,list(track_ids)):
你可以用for循环来检查它,不是吗?此外,您还可以尝试将该集合传递到list()
。由于它是一个不可索引(无需排序)的集合,您无法保证values
中的索引i
实际上引用了一个特定的track\u id
,下面的问题是,track\u id和值是以何种方式关联的,如果是这样的话,您是否希望在调用函数之前加入它们,以确保您的订单不会被打乱。(或者,如果您希望在列表上应用筛选器),OP已发布完整的函数。也许你应该将你的建议应用到他们的代码的完整版本?但是集合是无序的,因此列表也是无序的-索引到它是没有意义的。此外,你可以通过调用函数list(track_id)
@fstab将集合
转换成列表
。想回答吗?@data\u garden:你是什么意思?这里不需要排序,只要我有一个歌曲列表(曲目名称)和另一个列表,以及它们相应的曲目ID