Python tương đương với mã khởi động của PHP?


103

Có tương đương cho mã khởi động của PHP trong Python không? Tôi đã đọc và tách một tập hợp các từ được phân cách, và bây giờ tôi muốn sắp xếp chúng theo thứ tự ngẫu nhiên và in các từ ra với khoảng trắng ở giữa.

implode - Nối các phần tử mảng với một chuỗi

http://php.net/manual/en/ Chức năng.implode.php

Câu trả lời:


185

Sử dụng phương thức nối chuỗi .

print ' '.join(['word1', 'word2', 'word3'])

Bạn có thể tham gia bất listkỳ chuỗi nào có thể lặp lại (không chỉ được sử dụng ở đây) và tất nhiên bạn có thể sử dụng bất kỳ chuỗi nào (không chỉ ' ') làm dấu phân cách.

Nếu bạn muốn một thứ tự ngẫu nhiên như bạn đã nói trong câu hỏi của mình, hãy sử dụng xáo trộn .


join () hoạt động tuyệt vời nếu bạn có một mảng chuỗi, nhưng nếu bất kỳ thành viên nào của mảng là int thay vì chuỗi, bạn sẽ nhận được TypeError, mã của php không làm được điều đó, ngay cả trong chế độ nghiêm ngặt = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));cung cấp cho bạn string(31) "startStringglue123glueendString"but in python doing "glue".join(["startString",123,"endString"]);mang lại cho bạnTypeError: sequence item 1: expected str instance, int found
hanshenrik

14

Được rồi, tôi vừa tìm thấy một hàm thực hiện những gì tôi muốn làm;

Tôi đọc trong một tệp có các từ ở định dạng như: Jack/Jill/my/kill/name/bucket

Sau đó, tôi tách nó ra bằng split()phương pháp này và khi tôi có từ đó vào danh sách, tôi nối các từ với phương thức này:

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)

3
Tôi không hiểu tại sao bạn muốn tham gia. Đầu tiên, bạn có một dòng, bạn chia nó thành các ký tự và sau đó nối nó lại. Tại sao bạn không thay thế các ký tự ở vị trí đầu tiên? (Bạn bỏ lỡ phần 'ngẫu nhiên' trong câu trả lời của chính mình, không còn liên quan nữa?)
RvdK
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.