Hướng dẫn what is python one line answer? - câu trả lời một dòng của python là gì?

Trang này được dành cho các chương trình ngắn có thể thực hiện các hoạt động mạnh mẽ gọi là Python One-Liners.

Bạn có thể hỏi: Tại sao tôi nên quan tâm? Câu trả lời là sâu sắc: Nếu bạn không thể đọc và viết đoạn mã một lớp lót, làm thế nào bạn có thể hy vọng đọc và viết các cơ sở mã phức tạp hơn? Python One-Liners có thể mạnh mẽ như một chương trình dài và tẻ nhạt được viết bằng một ngôn ngữ khác được thiết kế để làm điều tương tự. Trong các ngôn ngữ khác [nghĩ: Java], điều này sẽ gần như không thể, nhưng trong Python, nó dễ thực hiện hơn rất nhiều. Bí quyết là nghĩ về một cái gì đó sẽ "làm rất nhiều với một chút." Quan trọng nhất, đọc và viết về Python One-Liners [ví dụ: trong bài đăng này] rất thú vị! Thậm chí còn có cả một nền văn hóa xung quanh những người có thể viết mã ngắn nhất cho một vấn đề nhất định.

Sẽ thật tuyệt vời nếu trang này mở rộng đến mức cần một số loại hệ thống tổ chức. .Edit: The one-liners are now sorted more or less by ease-of-understanding -- from simple to hard. Please use a "sorted insert" for your new one-liner.]

Mã nguồn được đóng góp từ các lập trình viên python khác nhau --- cảm ơn tất cả chúng! Đặc biệt cảm ơn sự đóng góp sớm Jam.

Tất nhiên, có những cuộc tranh luận về việc liệu một lớp lót thậm chí là Pythonic. Theo nguyên tắc thông thường: Nếu bạn sử dụng một lớp lót khó hiểu, khó hiểu hoặc thể hiện các kỹ năng của bạn, chúng có xu hướng không thể làm được. Tuy nhiên, nếu bạn sử dụng các thủ thuật một lớp được thiết lập tốt như hiểu biết danh sách hoặc toán tử ternary, chúng có xu hướng là Pythonic.

Vì vậy, sử dụng siêu năng lực một lớp của bạn một cách khôn ngoan!

Tài nguyên học tập One-liners miễn phí

  • Video & tài nguyên cuốn sách '' Python One-liners 'miễn phí

  • Bộ sưu tập '' một liners '' với vỏ tương tác

  • Cuốn sách '' Python One-Liners ''

  • Threat Quora Thread '' Python One-Liner ''

  • Python One -line X - Cách hoàn thành các nhiệm vụ khác nhau trong một dòng

  • Subreddit '' 'Python One-liners' ''

  • GitHub '' 'Python One-Liners' ''-Chia sẻ một lớp học của riêng bạn với cộng đồng

Tổng quan: 10 một lớp lót phù hợp với một tweet

Tôi đã truy cập trang này đôi khi và tôi thích nghiên cứu các lớp học được trình bày ở trên. Cảm ơn vì đã tạo ra tài nguyên tuyệt vời này, Jam và RJW!

Bởi vì tôi đã học được rất nhiều từ việc nghiên cứu một lớp lót, tôi nghĩ tại sao không hồi sinh trang [sau gần mười năm kể từ khi thay đổi cuối cùng xảy ra]?

Sau khi nỗ lực rất nhiều vào việc tìm kiếm trên web để lấy cảm hứng, tôi đã tạo ra mười lớp một phần sau. Một số trong số chúng là thuật toán nhiều hơn [ví dụ: Quicksort]. Một ngày nào đó, tôi sẽ thêm một lời giải thích chi tiết ở đây - nhưng bây giờ, bạn có thể đọc bài viết trên blog này để tìm giải thích.

   1 
   2 phrase.find[phrase[::-1]]
   3 
   4 
   5 a, b = b, a
   6 
   7 
   8 sum[stock_prices[::2]]
   9 
  10 
  11 [line.strip[] for line in open[filename]]
  12 
  13 
  14 reduce[lambda x, y: x * y, range[1, n+1]]
  15 
  16 
  17 python -m cProfile foo.py
  18 
  19 
  20 lambda l: reduce[lambda z, x: z + [y + [x] for y in z], l, [[]]]
  21 
  22 
  23 lambda x: x if x=L[0]]]
  27 
  28 
  29 reduce[ [lambda r,x: r-set[range[x**2,n,x]] if [x in r] else r], range[2,int[n**0.5]], set[range[2,n]]]

Tìm tất cả các chỉ số của một phần tử trong danh sách

Giả sử, bạn muốn thực hiện giống như phương thức danh sách.index [phần tử] nhưng trả về tất cả các chỉ số của phần tử trong danh sách thay vì chỉ một.

Trong một lớp này, bạn đang tìm kiếm phần tử 'alice' trong danh sách lst = [1, 2, 3, 'alice', 'alice'] để nó thậm chí hoạt động nếu phần tử không có trong danh sách [không giống như Phương thức list.index []].

   1 
   2 lst = [1, 2, 3, 'Alice', 'Alice']
   3 
   4 
   5 indices = [i for i in range[len[lst]] if lst[i]=='Alice']
   6 
   7 
   8 print[indices]
   9 

Echo unicode ký tự:

python -c "print unichr[234]"

Kịch bản này lặp lại "Ê"

Tái thực hiện cắt

In mọi dòng từ một tệp đầu vào nhưng xóa hai trường đầu tiên.

python -c "import sys;[sys.stdout.write[' '.join[line.split[' '][2:]]] for line in sys.stdin]" < input.txt

Giải mã một tệp được mã hóa base64

import base64, sys; base64.decode[open[sys.argv[1], "rb"], open[sys.argv[2], "wb"]]

Chỉnh sửa danh sách các tệp tại chỗ

Tôi đã đưa ra một lớp lót này để đáp lại một bài báo nói rằng nó không thể được thực hiện như một người trong số một trong Python.

Những gì điều này làm là thay thế phần phụ "AT" BY "OP" trên tất cả các dòng của tất cả các tệp [tại chỗ] theo đường dẫn được chỉ định [ở đây, đường dẫn hiện tại].

  • THẬN TRỌNG: Đừng chạy điều này trên thư mục nhà của bạn hoặc bạn sẽ chỉnh sửa tất cả các tệp văn bản của mình. Don't run this on your home directory or you're going to get all your text files edited.

import sys,os,re,fileinput;a=[i[2] for i in os.walk['.'] if i[2]] [0];[sys.stdout.write[re.sub['at','op',j]] for j in fileinput.input[a,inplace=1]]

Rõ ràng hơn là: nhập & nbsp; os.path; & nbsp; a = [f & nbsp; for & nbsp; f & nbsp; in & nbsp; os.listdir ['.'] & Nbsp; if & nbsp;

Tập hợp tất cả các tập hợp con

  • Chức năng trả về tập hợp tất cả các tập hợp con của đối số của nó

f = lambda x: [[y for j, y in enumerate[set[x]] if [i >> j] & 1] for i in range[2**len[set[x]]]]

>>>f[[10,9,1,10,9,1,1,1,10,9,7]]
[[], [9], [10], [9, 10], [7], [9, 7], [10, 7], [9, 10, 7], [1], [9, 1], [10, 1], [9, 10, 1], [7, 1], [9, 7, 1], [10, 7, 1], [9, 10, 7, 1]]

-RJW

Thay thế [Phiên bản ngắn hơn, chức năng hơn]:

f = lambda l: reduce[lambda z, x: z + [y + [x] for y in z], l, [[]]]

Terabyte đến byte

Bạn muốn biết nhiều byte một terabyte là? Nếu bạn biết thêm chữ viết tắt, bạn có thể mở rộng danh sách.

import pprint;pprint.pprint[zip[['Byte', 'KByte', 'MByte', 'GByte', 'TByte'], [1 

Bài Viết Liên Quan

Chủ Đề