python에서 목록 항목 집합을 구성하는 방법은 무엇입니까?
나는 가지고 있다list
python의 파일 이름을 만들 수 있습니다.set
모든 파일 이름 중에서.
filelist=[]
for filename in filelist:
set(filename)
이것은 효과가 없는 것 같다.어떻게 이럴 수 있죠?
해시 가능한 오브젝트 리스트가 있는 경우(파일명은 문자열일 가능성이 높기 때문에 카운트해야 합니다).
lst = ['foo.py', 'bar.py', 'baz.py', 'qux.py', Ellipsis]
세트를 직접 구성할 수 있습니다.
s = set(lst)
실은.set
반복할 수 있는 오브젝트라면 이런 식으로 동작할 것입니다! (오리 타이핑은 훌륭하지 않나요?)
반복하고 싶은 경우는, 다음의 순서에 따릅니다.
s = set()
for item in iterable:
s.add(item)
하지만 이런 식으로 할 필요는 거의 없습니다.제가 언급하는 이유는set.add
방법은 매우 유용합니다.
가장 직접적인 해결책은 다음과 같습니다.
s = set(filelist)
원래 코드의 문제는 값이 세트에 할당되지 않았다는 것입니다.다음은 코드 수정 버전입니다.
s = set()
for filename in filelist:
s.add(filename)
print(s)
할수있습니다
my_set = set(my_list)
Python 3에서는
my_set = {*my_list}
목록에서 세트를 만듭니다.반대로 다음과 같이 할 수도 있습니다.
my_list = list(my_set)
Python 3에서는
my_list = [*my_set]
목록에서 목록을 만듭니다.
리스트내의 요소의 순서는, 본질적으로 순서가 정해져 있지 않기 때문에, 리스트내의 요소를 세트로 변환할 때, 일반적으로 없어지는 것에 주의해 주세요(단, CPython 의 예외 중 하나는, 리스트가 음이 아닌 정수만으로 구성되어 있는 것처럼 보이지만, 이것은 CPython 의 세트 실장의 결과이며, 이 동작은 다양할 수 있습니다.다양한 Python 구현을 지원합니다.)
다음은 또 다른 해결 방법입니다.
>>>list1=["C:\\","D:\\","E:\\","C:\\"]
>>>set1=set(list1)
>>>set1
set(['E:\\', 'D:\\', 'C:\\'])
이 코드에서는 set 메서드를 사용하여 세트로 변환한 후 목록에서 모든 중복 값을 제거했습니다.
간단히 말하면 다음과 같습니다.
new_list = set(your_list)
다음과 같은 반복적인 방법으로 세트를 구성하는 일반적인 방법 중 하나입니다.
aset = {e for e in alist}
목록 이해를 사용하여 세트를 작성할 수도 있습니다.
s = {i for i in range(5)}
위의 답변은 모두 맞지만 목록의 순서를 유지하려면 다음과 같이 진행해야 합니다.
list(dict.fromkeys(your_list))
언급URL : https://stackoverflow.com/questions/15768757/how-to-construct-a-set-out-of-list-items-in-python
'programing' 카테고리의 다른 글
인쇄용 if 스테이트먼트를 인라인으로 쓰는 방법 (0) | 2022.10.08 |
---|---|
Python에서 현재 OS를 찾으려면 어떻게 해야 하나요? (0) | 2022.10.08 |
클래스 정의의 목록 이해에서 클래스 변수 액세스 (0) | 2022.10.08 |
React에서 중첩된 상태 특성을 업데이트하는 방법 (0) | 2022.10.08 |
mysql의 float(2,2)와 float()의 차이 (0) | 2022.10.08 |