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!

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

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<=1 else fib(x-1) + fib(x-2)
  24 
  25 
  26 lambda L: [] if L==[] else qsort([x for x in L[1:] if x< L[0]]) + L[0:1] + qsort([x for x in L[1:] 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 << 10*i for i in range(5))))

Số 8 bytes lớn nhất

Và con số lớn nhất có thể được đại diện bởi 8 byte là bao nhiêu?

   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 
0

Dễ thương phải không?

Danh sách hiển thị của tất cả người dùng trên các hệ thống giống như UNIX

   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 
1

Tệp CSV cho JSON

   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 
2

Nén tệp CSS

   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 
3

Chuỗi giải mã được viết bằng hex

   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 
4

Truy xuất văn bản nội dung từ dữ liệu HTTP

   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 
5

In mở rộng tập tin

   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 
6

Thoát khỏi nội dung từ stdin

Điều này có thể được sử dụng để chuyển đổi chuỗi thành chuỗi "url an toàn"

   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 
7

Dòng ngược trong stdin

   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 
8

In 10 dòng Stdin hàng đầu

   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 
9

Áp dụng biểu thức chính quy cho các dòng từ stdin

python -c "print unichr(234)"
0

Sửa đổi các dòng từ Stdin bằng bản đồ

python -c "print unichr(234)"
1

Nhồi nhét python vào makefiles

Một vấn đề liên quan là nhúng python vào một makefile. Tôi đã có một kịch bản thực sự dài mà tôi đang cố gắng nhồi nhét vào một makefile để tôi tự động hóa quá trình:

python -c "print unichr(234)"
2

Kịch bản này tạo ra "một lớp" theo quan điểm của Make.

Họ gọi nó là "piper pyed" hoặc pyp. Nó khá giống với cách thực hiện Python, nhưng nó nhập các mô -đun chung và có biến đặt trước riêng giúp phân tách/tham gia, truy cập dòng, v.v. Chuỗi python và phương pháp danh sách bình thường của bạn. Dưới đây là một ví dụ từ trang chủ:

Ở đây, chúng tôi lấy một danh sách dài Linux, ghi lại các dòng thứ 5 đến các dòng thứ 10, giữ tên người dùng và tên tệp, thay thế "Xin chào" bằng "Tạm biệt", viết hoa chữ cái đầu tiên của mỗi từ, sau đó thêm văn bản " là tuyệt vời "đến cuối cùng:

python -c "print unichr(234)"
3

và lời giải thích:

Điều này sử dụng các biến danh sách và chuỗi tích hợp của PYP (P và PP), cũng như khoảng trắng biến đổi và phím tắt của nó, cả hai đại diện cho một danh sách dựa trên việc chia mỗi dòng trên Whitespace (Whitespace = W = P.Split ()) . Các chức năng và kỹ thuật lựa chọn khác đều là python tiêu chuẩn. Lưu ý các đường ống ("|") nằm trong lệnh PYP.

http://code.google.com/p/pyp/ http://opensource.imageworks.com/?p=pyp

Mã đóng góp

  • Jam/Code/PlatformFinder - Chương trình này cho bạn biết bạn đang sử dụng nền tảng nào.

  • Jam/Code/Compyiler - Chương trình này biên soạn mọi tệp .py trong thư mục Python.

  • Python One -Liners/HostName mạnh mẽ - Chương trình này cho bạn biết tên máy chủ của bạn là gì.

Dòng duy nhất trong Python là gì?

Một bình luận dòng duy nhất trong Python là gì? Nhận xét dòng đơn là những bình luận được viết mà không cho một dòng phá vỡ hoặc dòng mới trong Python. Một nhận xét Python được viết bằng cách khởi tạo văn bản bình luận với # và chấm dứt khi kết thúc dòng.those comments which are written without giving a line break or newline in python. A python comment is written by initializing the text of comment with a # and terminates when the end of line is encountered.

Dòng mã trong Python là gì?

Mã dòng là sơ đồ báo hiệu được sử dụng để thể hiện dữ liệu trên một dòng giao tiếp. Có một số sơ đồ có thể có sẵn cho mục đích này. Cho phép hiểu và chứng minh mã dòng và PSD (mật độ phổ công suất) trong MATLAB & PYTHON.the signaling scheme used to represent data on a communication line. There are several possible mapping schemes available for this purpose. Lets understand and demonstrate line code and PSD (power spectral density) in Matlab & Python.

Mã Python có thể được viết trong một dòng không?

Khoa học dữ liệu thực tế bằng cách sử dụng Python Những tuyên bố này rất có thể được viết trong một dòng bằng cách đặt dấu chấm phẩy ở giữa.Tuy nhiên, thực tế này không được phép nếu có một khối các câu lệnh lồng nhau.These statements can very well be written in one line by putting semicolon in between. However, this practice is not allowed if there is a nested block of statements.

Làm thế nào để bạn viết một chức năng một dòng trong Python?

Hàm Lambda cho phép bạn xác định một hàm trong một dòng.Nó bắt đầu với từ khóa Lambda, tiếp theo là một danh sách được phân tách bằng dấu phẩy hoặc nhiều đối số hoặc nhiều đối số, tiếp theo là dấu hai chấm và biểu thức trả lại. allows you to define a function in a single line. It starts with the keyword lambda , followed by a comma-separated list of zero or more arguments, followed by the colon and the return expression.