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. Show
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í
Tổng quan: 10 một lớp lót phù hợp với một tweetTô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<=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áchGiả 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ắtIn 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 base64import 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).
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
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 byteBạ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ấtVà 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) 90 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ư UNIX1 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) 91 Tệp CSV cho JSON1 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) 92 Nén tệp CSS1 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) 93 Chuỗi giải mã được viết bằng hex1 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) 94 Truy xuất văn bản nội dung từ dữ liệu HTTP1 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) 95 In mở rộng tập tin1 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) 96 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) 97 Dòng ngược trong stdin1 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) 98 In 10 dòng Stdin hàng đầu1 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) 99 Áp dụng biểu thức chính quy cho các dòng từ stdinpython -c "print unichr(234)"
0Sửa đổi các dòng từ Stdin bằng bản đồpython -c "print unichr(234)"
1Nhồi nhét python vào makefilesMộ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)"
2Kị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)"
3và 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
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. |