Python cho nhiều danh sách

This could be a menu program. Nhưng tôi chỉ thắc mắc về sự tồn tại của chức năng tích hợp như vậy trong Python

Martineau

Huy hiệu vàng 116K2525 huy hiệu vàng160 huy hiệu bạc285 huy hiệu đồng

Đã hỏi ngày 10 tháng 11 năm 2011 lúc 15. 02 10/11/2011 lúc 15. 02

xiaohan2012xiaohan2012 xiaohan2012

9. 34620 Huy hiệu vàng64 Huy hiệu bạc99 Huy hiệu Đồng20 huy hiệu vàng64 huy hiệu bạc99 huy hiệu đồng

Chức năng hợp nhất

[1,3,5],[2,4,6]
5 sẽ gần như làm những gì bạn muốn.
>>> list[zip[*[[1, 2], [3, 4], [5, 6]]]]
[[1, 3, 5], [2, 4, 6]]

Sự khác biệt duy nhất là bạn nhận được bộ dữ liệu thay vì danh sách. Bạn có thể chuyển đổi chúng thành danh sách bằng cách sử dụng

list[map[list, zip[*[[1, 2], [3, 4], [5, 6]]]]]

Đã trả ngày 10 tháng 11 năm 2011 lúc 15. 03 10/11/2011 lúc 15. 03

Sven Marnachsven Marnach Sven Marnach

545K114 Huy hiệu vàng 915 Huy hiệu bạc817 Huy hiệu đồng114 huy hiệu vàngHuy hiệu bạc 915817 đồng

3

Từ Python tài liệu

Zip[] kết hợp với toán tử * có thể được sử dụng để giải nén danh sách

Ví dụ cụ thể

>>> zip[[1,3,5],[2,4,6]]
[[1, 2], [3, 4], [5, 6]]
>>> zip[*[[1, 2], [3, 4], [5, 6]]]
[[1, 3, 5], [2, 4, 6]]

Hoặc, nếu bạn thực hiện danh sách muốn

>>> map[list, zip[*[[1, 2], [3, 4], [5, 6]]]]
[[1, 3, 5], [2, 4, 6]]

Đã trả ngày 10 tháng 11 năm 2011 lúc 15. 04 10/11/2011 lúc 15. 04

Sử dụng

a = [[1,2],[3,4],[5,6],]    
b = zip[*a]
>>> [[1, 3, 5], [2, 4, 6]]

Đã trả ngày 10 tháng 11 năm 2011 lúc 15. 04 10/11/2011 lúc 15. 04

Artsiom Rudzenkaartsiom Rudzenka Artsiom Rudzenka

27. 1k4 Huy hiệu vàng33 Huy hiệu bạc51 Huy hiệu Đồng4 huy hiệu vàng33 huy hiệu bạc51 huy hiệu đồng

Franklsf95 đi chọn hiệu ứng trong câu trả lời của anh ấy và chọn cho

[1,3,5],[2,4,6]
6, nhưng chúng không tối ưu

Add all the list list, tôi đã kết thúc với những điều sau

def t1[zs]:
    xs, ys = zip[*zs]
    return xs, ys

def t2[zs]:
    xs, ys = [], []
    for x, y in zs:
        xs.append[x]
        ys.append[y]
    return xs, ys

def t3[zs]:
    xs, ys = [x for x, y in zs], [y for x, y in zs]
    return xs, ys

if __name__ == '__main__':
    from timeit import timeit
    setup_string='''\
N = 2000000
xs = list[range[1, N]]
ys = list[range[N+1, N*2]]
zs = list[zip[xs, ys]]
from __main__ import t1, t2, t3
'''
    print[f'zip:\t\t{timeit['t1[zs]', setup=setup_string, number=1000]}']
    print[f'append:\t\t{timeit['t2[zs]', setup=setup_string, number=1000]}']
    print[f'list comp:\t{timeit['t3[zs]', setup=setup_string, number=1000]}']

This thing is for results

[1,3,5],[2,4,6]
0

Vì vậy, nếu bạn là người theo dõi hiệu suất, có lẽ bạn nên sử dụng

[1,3,5],[2,4,6]
5 mặc dù danh sách toàn diện không quá xa. Hiệu suất của ______08 thực sự khá kém so với so sánh

Đã trả lời ngày 18 tháng 1 năm 2018 lúc 23. 08 18 Tháng 1, 2018 lúc 23. 08

Baldrickkbaldrickk Baldrickk

4. 1711 Huy hiệu vàng15 Huy hiệu bạc26 Huy hiệu đồng1 huy hiệu vàng15 huy hiệu bạc26 huy hiệu đồng

default

[1,3,5],[2,4,6]
9 là Pythonic hơn, mã sau đây có hiệu quả tốt hơn nhiều.
[1,3,5],[2,4,6]
4

Ngoài ra, khi ban đầu danh sách

>>> list[zip[*[[1, 2], [3, 4], [5, 6]]]]
[[1, 3, 5], [2, 4, 6]]
0 trống,
[1,3,5],[2,4,6]
9 sẽ tăng lên, nhưng mã này có thể xử lý đúng

Tôi vừa chạy thử nghiệm nhanh, và đây là kết quả

[1,3,5],[2,4,6]
0

Chạy nó nhiều lần,

[1,3,5],[2,4,6]
8 nhanh hơn 3x - 4x so với
>>> list[zip[*[[1, 2], [3, 4], [5, 6]]]]
[[1, 3, 5], [2, 4, 6]]
3. Kiểm tra lệnh tại đây.
[1,3,5],[2,4,6]
1

Phiên bản Python của tôi

[1,3,5],[2,4,6]
2

Đã trả ngày 7 tháng 11 năm 2017 lúc 0. 52 7 tháng 11, 2017 lúc 0. 52

franklsf95franklsf95 franklsf95

1. 09211 Huy hiệu bạc20 Huy hiệu đồng11 huy hiệu bạc20 huy hiệu đồng

0

Ngoài câu trả lời của Claudiu, bạn có thể sử dụng

[1,3,5],[2,4,6]
3

Được chỉnh sửa theo @Peyman Mohseni Kiasari

Đã trả lời ngày 26 tháng 5 năm 2019 lúc 11. 50 26 Tháng Năm, 2019 lúc 11. 50

1

Thêm vào câu trả lời của Claudiu và Claudiu và vì MAP cần được nhập từ itertools trong Python 3, bạn cũng sử dụng danh sách hiểu như

[1,3,5],[2,4,6]
4

Đã trả lời ngày 24 tháng 5 năm 2017 lúc 11. 57 24 tháng 5 năm 2017 lúc 11. 57

Quickbeam2k1Quickbeam2k1 Quickbeam2k1

4. 9972 Huy hiệu vàng23 Huy hiệu bạc42 Huy hiệu Đồng2 huy hiệu vàng23 huy hiệu bạc42 huy hiệu đồng

Làm thế nào để bạn biến một tuple thành hai danh sách?

To convert the list of data data to two list. use zip[] function with * * to extractor list. Object map into a list list. Sử dụng hàm zip[] với toán tử * để giải nén danh sách. Sử dụng hàm map[] để chuyển đổi các bộ dữ liệu trong đối tượng zip thành danh sách. Sử dụng lớp list[] để chuyển đổi đối tượng bản đồ thành danh sách .

Làm cách nào để thiết lập danh sách từ danh sách các bộ dữ liệu trong Python?

Nếu bạn đang gặp sự cố, đây là câu trả lời rút gọn. Sử dụng câu lệnh Danh sách hiểu [list [x] cho x trong bộ dữ liệu] để chuyển đổi từng Tuple trong Tuples thành một danh sách. Điều này cũng kích hoạt một danh sách các bộ dữ liệu với số lượng các yếu tố khác nhau. Sử dụng câu lệnh hiểu danh sách [list[x] for x in tuples] để chuyển đổi từng bộ trong các bộ thành danh sách

Chủ Đề