【问题标题】:How do I get the base elements from an array or a list?如何从数组或列表中获取基本元素?
【发布时间】:2019-07-24 20:00:52
【问题描述】:

我有一个包含 500 个重复名称的列表:

[name1, name2, name1, name7,name2,name1, name1, name1, name134, name11, 等等...]

我想创建一个只有基本名称的列表,例如,如果只有 N 个基本名称,那么列表应该是:

[name1, name2, name3, name4, ... , name(N)]

我将如何快速简便地做到这一点?

【问题讨论】:

  • 你是说你想摆脱重复的名字吗?假设您的列表存储在names,您可以通过set(names) 获取唯一名称。
  • 您能否提供代码来说明您如何尝试解决此问题 - 这样人们就更容易提供有用且及时的答案。

标签: python jupyter


【解决方案1】:

基本名称是什么意思? 要获取唯一名称列表,您可以这样做:

list(set(names))

这会将最初的 list 转换为 set,然后您再次将 set 转换为 list

【讨论】:

  • 感谢大家的快速回复。 set(list) 代码就是我要找的。​​span>
  • 如何使用索引参考进行此设置?我正在尝试访问某个索引,但它给了我这个错误“TypeError:'set'对象不支持索引”
  • 就像我说的,将集合转换成一个列表。所以您可以执行以下操作:yourList = list(set(name)),然后访问您想要的索引:yourList[5]
  • 另外,如果它回答了您的问题,您能否接受它作为答案?谢谢。
【解决方案2】:

使用 set() 您可以拥有 unique 元素的无序集合:

myList = ['name1', 'name2', 'name1', 'name7', 'name2', 'name1', 'name1', 'name1', 'name134', 'name11']
mySet = set(myList)
print(mySet)

{'name134', 'name11', 'name2', 'name1', 'name7'}

list() 构造函数返回一个可变的元素序列列表:

myNewList = list(mySet)
print(myNewList)

['name134', 'name11', 'name2', 'name1', 'name7']

sorted() 返回一个新的排序列表:

myNewSortedList = sorted(myNewList)
print(myNewSortedList)

['name1', 'name11', 'name134', 'name2', 'name7']

【讨论】:

  • 谢谢,我是 python 新手,set(list) 是我要找的代码。
【解决方案3】:
list_of_repeating_names = [name1, name2, name1, name7,name2,name1, name1, name1, name134, name11, ]
sorted_unique_names = sorted(list(set(list_of_repeating_names)))

返回

['name1', 'name11', 'name134', 'name2', 'name7']

set 删除重复但无序的,您将其转换为您排序的列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多