【问题标题】:How to set index of element inside list with lists in python?如何使用python中的列表设置列表内元素的索引?
【发布时间】:2020-12-08 16:07:59
【问题描述】:

我有一个列表变量,里面有集合。由于集合是无序的并且它的元素没有索引,我将其更改为列表,然后我想循环遍历它并且不更改元素的位置,但是每次循环时它都会给我一个随机分配的索引和值.

test = [{"2015", "teacher", "cz", "m", "Paris"}, {"2011", "teacher", "en", "w", "London"},{"2018", "teacher", "ua", "m", "Berlin"}]
    
def get_data(test):
 for sets in test:
  lists = list(sets)
   for item in enumerate(lists):
     print(item)
get_data(test)

【问题讨论】:

  • 套装没有订单,这意味着您无法从中获得订单。转换为列表将生成一个保持顺序的列表,但初始顺序未指定。
  • @Aplet123 以及将集合更改为列表时如何指定初始顺序?
  • 你没有。这就是没有订单的意思。
  • 如果你想让它按特定的顺序排列,那为什么不能只做一个嵌套列表呢?例如[["2015", "teacher", "cz", "m", "Paris"], etc.]

标签: python list enumerate


【解决方案1】:

如果您希望顺序和索引从一个运行到下一个运行稳定,请使用 sorted() 将您的集合转换为列表:

即将lists = list(sets) 更改为lists = sorted(sets)

【讨论】:

    【解决方案2】:

    您拥有的物品根本不适合成套存储。集合只是一堆东西,内部没有顺序,意味着包含类似的东西,顺序无关紧要,只是作为或不属于集合的一部分。虽然您似乎有诸如 year-occupation-nationality-gender-location 之类的东西,但可以按标签(使用字典、{"year":2015,"occupation":"teacher"...} 等)或按您询问的顺序(列表或元组)组织.

    您可能会将{sets}(tuples) 混淆。它们不是列表(您已经清楚地知道列表),并且它们保持顺序:

    test = [("2015", "teacher", "cz", "m", "Paris"),("2011", "teacher", "en", "w", "London"),("2018", "teacher", "ua", "m", "Berlin")]
        
    def get_data(test):
      for sets in test:
        lists = list(sets)
        for item in enumerate(lists):
          print(item)
    get_data(test)
    

    将始终产生相同的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 2022-10-04
      • 2021-09-08
      • 2013-12-03
      • 1970-01-01
      相关资源
      最近更新 更多