인생은 짧습니다. 저는 Python을 사용합니다.
프로그래머가 추구하는 것은 코드를 작성하지 않고도 최대한 빨리 경제적 자유를 얻는 것입니다. 아니, 실수로 진실을 말했어요. 코드를 간결하고 우아하게 작성했어야 했는데.
Python 프로그래머가 추구하는 것은 Pythonic입니다. Python 언어에도 코드를 간결하고 우아하며 독특하게 만들 수 있는 "숨겨진" 메서드가 많이 있습니다.
여기에는 특히 목록 및 사전과 관련된 몇 가지 일반적인 작업이 요약되어 있습니다.
이 방법이 좀 재미있는데 우연히 발견했습니다.
>>> s = "programming is awesome" >>> print(s.title()) Programming Is Awesome
첫 번째 방법: +를 사용하세요.
>>> a + b [1, 2, 3, 4, 5, 6]
두 번째 방법: 확장 키워드를 사용하세요.
>>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6]
후자의 두 가지 방법이 확실히 더 우아하고 권장됩니다. 한 가지 주의할 점은 목록이 크면 +가 느려지고 확장이 더 좋아진다는 것입니다.
목록 요소를 중복 제거하려면 set()을 사용하세요.
>>> a = [1, 2, 3, 4, 2, 3] >>> list(set(a)) [1, 2, 3, 4]
sort() 또는 내장 함수 sorted()를 사용하여 목록을 정렬하세요. 두 가지 차이점이 있습니다.
# sort() >>> a = [1, 2, 3, 4, 2, 3] >>> a.sort() >>> a [1, 2, 2, 3, 3, 4] >>> >>> a = [1, 2, 3, 4, 2, 3] >>> a.sort(reverse=True) >>> a [4, 3, 3, 2, 2, 1] # sorted() >>> a = [1, 2, 3, 4, 2, 3] >>> sorted(a) [1, 2, 2, 3, 3, 4] >>> a = [1, 2, 3, 4, 2, 3] >>> sorted(a, reverse=True) [4, 3, 3, 2, 2, 1]
enumerate() 함수를 사용하여 인덱스와 요소 값을 모두 출력합니다.
>>> a = ['python', 'go', 'java'] >>> for i, v in enumerate(a): ... print(i, v) # output 0 python 1 go 2 java
max() 함수를 사용하여 목록에서 가장 자주 발생하는 요소를 빠르게 찾으세요.
>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2] >>> b = max(set(a), key=a.count) >>> b 4
한 가지 주의할 점은 목록에 동일한 횟수로 나타나는 두 요소가 있는 경우 첫 번째로 나타나는 요소가 반환된다는 것입니다.
>>> a = [1, 2] >>> b = max(set(a), key=a.count) >>> b 1
이전 코드는 가장 자주 발생하는 값을 제공합니다. 목록에 있는 모든 요소의 발생 횟수를 알고 싶다면 collections 모듈을 사용할 수 있습니다.
collections는 많은 기능을 제공하는 Python의 보물 모듈입니다. Counter 메서드는 이 요구 사항을 완벽하게 해결할 수 있습니다.
>>> from collections import Counter >>> >>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2] >>> Counter(a) Counter({4: 4, 2: 2, 3: 2, 1: 1, 5: 1})
zip() 함수를 사용하면 두 목록을 사전으로 병합할 수 있습니다.
>>> a = ['one', 'tow', 'three'] >>> b = [1, 2, 3] >>> dict(zip(a, b)) {'one': 1, 'tow': 2, 'three': 3}
두 목록의 교집합, 합집합, 차이를 찾아보세요.
# list_operate.py def main(): list_a = [1, 2, 3, 4, 5] list_b = [4, 5, 6, 7, 8] # 求交集的两种方式 res_a = [i for i in list_a if i in list_b] res_b = list(set(list_a).intersection(set(list_b))) print(f"res_a is: {res_a}") print(f"res_b is: {res_b}") # 求并集 res_c = list(set(list_a).union(set(list_b))) print(f"res_c is: {res_c}") # 求差集的两种方式,在B中但不在A中 res_d = [i for i in list_b if i not in list_a] res_e = list(set(list_b).difference(set(list_a))) print(f"res_d is: {res_d}") print(f"res_e is: {res_e}") if __name__ == '__main__': main()
# 1、创建空字典 a = {} b = dict() # 2、有初始值,从输入的便利程度来说,我更喜欢第二种 a = {'a': 1, 'b': 2, 'c': 3} b = dict(a=1, b=2, c=3) # 3、key 来自一个列表,而 value 相同, 使用 fromkeys,那是相当的优雅 keys = ['a', 'b', 'c'] value = 100 d = dict.fromkeys(keys, value) # 4、key 来自一个列表,而 value 也是一个列表,使用 zip keys = ['a', 'b', 'c'] values = [1, 2, 3] d = dict(zip(keys, values))
m = {'a': 1} n = {'b': 2, 'c': 3} # 合并,两种方式 # 1、使用 update m.update(n) # 2、使用 ** {**m, **n}
Python2에서 키가 존재하는지 확인하려면 has_key를 사용할 수 있지만 Python3에서는 이 방법이 제거되었습니다.
또 다른 방법은 in 키워드를 사용하는 것입니다. 이는 Python2 및 Python3과 호환될 뿐만 아니라 더 빠르고 강력히 권장됩니다.
d = {'a': 1, 'b': 2} if 'a' in d: print('hello')
d = {'a': 1, 'b': 2} # 1、直接用 key 取值,但这种方式不好,如果 key 不存在会报错,推荐使用 get a = d['a'] # 2、使用 get,如果 key 不存在还可以赋默认值 a = d.get('a') c = d.get('c', 3)
d = {'a': 1, 'b': 2, 'c': 3} # 遍历 key for key in d.keys(): pass # 遍历 value for value in d.values(): pass # 遍历 key 和 value for key, value in d.items(): pass
목록 이해와 사전 이해는 제가 가장 좋아하는 기능이며 간단하고 효율적입니다. 더 이상 맵과 필터를 거의 사용할 수 없습니다.
l = [1, 2, 3] {n: n * n for n in l} {1: 1, 2: 4, 3: 9}
d = {'a': 1, 'b': 2, 'e': 9, 'c': 5, 'd': 7} # 按 key 排序 sorted(d.items(), key=lambda t: t[0]) # 按 key 倒序 sorted(d.items(), key=lambda t: t[0], reverse=True) # 按 value 排序 sorted(d.items(), key=lambda t: t[1])
개발 과정에서 자주 접하는 또 다른 요구 사항은 목록이 있고 목록의 요소가 사전인 다음 값에 따라 목록을 정렬하는 것입니다. 사전.
아아아아위 내용은 내가 작성한 Python 코드는 동료들로부터 칭찬을 받았습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!