> 백엔드 개발 > 파이썬 튜토리얼 > 내가 작성한 Python 코드는 동료들로부터 칭찬을 받았습니다.

내가 작성한 Python 코드는 동료들로부터 칭찬을 받았습니다.

王林
풀어 주다: 2023-04-12 13:43:12
앞으로
1237명이 탐색했습니다.

인생은 짧습니다. 저는 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() 메서드는 원래 목록에서 작동하는 반면 sorted() 메서드는 원래 기반으로 작동하지 않고 새 목록을 반환합니다.
  • 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿