Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

Điều này thật xấu xí:

psData = []
nsData = []
msData = []
ckData = []
mAData = []
RData = []
pData = []

Có cách nào để khai báo các biến này trên một dòng không?

Đã hỏi ngày 8 tháng 3 năm 2010 lúc 16:03Mar 8, 2010 at 16:03

Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

Thenicknamethenicknamethenickname

6.41414 Huy hiệu vàng40 Huy hiệu bạc42 Huy hiệu đồng14 gold badges40 silver badges42 bronze badges

4

alist, blist, clist, dlist, elist = ([] for i in range(5))

Nhược điểm của cách tiếp cận trên là, bạn cần đếm số lượng tên ở bên trái của

alist, blist, clist, dlist, elist = ([] for i in range(5))
2 và có cùng số lượng danh sách trống (ví dụ: thông qua cuộc gọi
alist, blist, clist, dlist, elist = ([] for i in range(5))
3 hoặc rõ ràng hơn) ở phía bên phải.

Điều chính là, đừng sử dụng một cái gì đó nhưdon't use something like

alist, blist, clist, dlist, elist = [[]] * 5

cũng không

alist = blist = clist = dlist = elist = []

Mà sẽ làm cho tất cả các tên đề cập đến cùng một danh sách trống!same empty list!

Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

Aerin

18.3K28 Huy hiệu vàng93 Huy hiệu bạc130 Huy hiệu đồng28 gold badges93 silver badges130 bronze badges

Đã trả lời ngày 8 tháng 3 năm 2010 lúc 16:04Mar 8, 2010 at 16:04

Alex Martellialex MartelliAlex Martelli

825K163 Huy hiệu vàng1203 Huy hiệu bạc1381 Huy hiệu Đồng163 gold badges1203 silver badges1381 bronze badges

5

psData,nsData,msData,ckData,mAData,RData,pData = [],[],[],[],[],[],[]

Đã trả lời ngày 8 tháng 3 năm 2010 lúc 16:05Mar 8, 2010 at 16:05

Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

1

Tùy thuộc vào nhu cầu của bạn, bạn có thể xem xét sử dụng DefaultDict với một nhà máy danh sách. Cái gì đó như:

my_lists = collections.defaultdict(list)

Và sau đó bạn có thể trực tiếp nối vào my_lists ["psdata"], v.v. Đây là trang tài liệu có liên quan: http://docs.python.org/l Library/collections.html#collections.defaultdict

Đã trả lời ngày 8 tháng 3 năm 2010 lúc 16:07Mar 8, 2010 at 16:07

Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

FrancescofrancescoFrancesco

3.1301 Huy hiệu vàng32 Huy hiệu bạc45 Huy hiệu đồng1 gold badge32 silver badges45 bronze badges

2

Cách tiếp cận hiệu quả hơn một chút:

alist, blist, clist, dlist, elist = ([] for _ in xrange(5))

[NOTE]:NOTE]:

  • alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    4 tối ưu hơn
    alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    5 trong Python2. (Tham khảo)

  • Biến

    alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    6 là không thể sử dụng nên sử dụng
    alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    7 là tốt hơn. (Tham khảo)

  • alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    4 không còn ở Python3 -
    alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    5 giống nhau với
    alist, blist, clist, dlist, elist = ([] for i in range(5))
    
    4.

Đã trả lời ngày 20 tháng 10 năm 2018 lúc 7:28Oct 20, 2018 at 7:28

Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

Benyamin Jafaribenyamin JafariBenyamin Jafari

23.9K21 Huy hiệu vàng115 Huy hiệu bạc135 Huy hiệu Đồng21 gold badges115 silver badges135 bronze badges

1

Trống nhớ rằng, sự gọn gàng có thể đi kèm với hậu quả của hiệu suất. Cuộc gọi chức năng phạm vi sẽ làm chậm quá trình init một chút. Coi chừng nếu bạn có một số quy trình cần phải điều chỉnh biến nhiều lần.

import time
def r_init():
    st=time.time()
    alist, blist, clist, dlist, elist = ([] for i in range(5))
    et=time.time()
    print("{:.15f}".format(et-st))

def p_init():
    st=time.time()
    alist=[];blist=[];clist=[];dlist=[];elist=[]
    et=time.time()
    print("{:.15f}".format(et-st))

for x in range(1,10):
    r_init()
    p_init()
    print("\n")

Đã trả lời ngày 13 tháng 1 năm 2017 lúc 11:05Jan 13, 2017 at 11:05

MOOTMOOTMOOTMOOTmootmoot

12.3k5 Huy hiệu vàng46 Huy hiệu bạc44 Huy hiệu đồng5 gold badges46 silver badges44 bronze badges

Bạn có thể sử dụng một lớp để khởi tạo/lưu trữ dữ liệu, nó sẽ mất nhiều dòng hơn, nhưng có thể dễ đọc hơn và định hướng đối tượng hơn.

Like:

class Data:
    def __init__(self):
        self.var1=[]
        
    def zeroize(self):
        self.var1=[]
        

Sau đó, ở Main gần đầu:

data=Data()

Sau đó, trong các vòng lặp của bạn hoặc bất cứ nơi nào trong Tuyên bố bài đăng chính, bạn có thể sử dụng lớp.

alist, blist, clist, dlist, elist = ([] for i in range(5))
0

Spectre87

2.3441 Huy hiệu vàng22 Huy hiệu bạc36 Huy hiệu đồng1 gold badge22 silver badges36 bronze badges

Đã trả lời ngày 11 tháng 7 năm 2012 lúc 17:12Jul 11, 2012 at 17:12

1

Một cái gì đó dọc theo dòng của

alist, blist, clist, dlist, elist = ([] for i in range(5))
1

sẽ xuất hiện là giải pháp thanh lịch nhất.

Đã trả lời ngày 14 tháng 9 năm 2018 lúc 16:31Sep 14, 2018 at 16:31

Hướng dẫn how do i declare multiple lists in one line in python? - làm cách nào để khai báo nhiều danh sách trong một dòng trong python?

Bryson S.Bryson S.Bryson S.

Huy hiệu Bạc 911 Huy hiệu Đồng1 silver badge3 bronze badges

1

Làm thế nào để bạn khởi tạo nhiều danh sách trong một dòng Python?

Danh sách khởi tạo là: Danh sách 1: [] Danh sách 2: [] Danh sách 3: [] Danh sách 4: [].
Danh sách khởi tạo là: Danh sách 1: [1] Danh sách 2: [2] Danh sách 3: [3] Danh sách 4: [4].
Các danh sách khởi tạo đều giống nhau: Danh sách 1: ["Xin chào"] Danh sách 2: ["Xin chào"] Danh sách 3: ["Xin chào"] Danh sách 4: ["Xin chào"].

Làm thế nào để bạn tạo nhiều danh sách trong một danh sách Python?

Trong Python, chúng ta có thể sử dụng toán tử + để hợp nhất nội dung của hai danh sách thành một danh sách mới.Ví dụ: chúng ta có thể sử dụng toán tử + để hợp nhất hai danh sách, tức là nó đã trả về một danh sách được nối mới, chứa nội dung của cả List_1 và List_2.use the + operator to merge the contents of two lists into a new list. For example, We can use + operator to merge two lists i.e. It returned a new concatenated lists, which contains the contents of both list_1 and list_2.

Làm thế nào để bạn tuyên bố hai danh sách trong Python?

Phương pháp 2: Thêm hai danh sách bằng danh sách hiểu..
# Khởi tạo danh sách Python ..
LT1 = [2, 4, 6, 8, 10, 30].
LT2 = [2, 4, 6, 8, 10, 12].
# In phần tử danh sách ban đầu ..
in ("Danh sách Python 1:" + str (lt1)).
in ("Danh sách Python 2:" + str (lt2)).
# Sử dụng danh sách hiểu để thêm hai danh sách ..

Làm thế nào để bạn nhập nhiều danh sách?

Cấm Python làm thế nào đầu vào có thể lấy hai danh sách của mã..
# Số lượng các yếu tố ..
n = int (đầu vào ("nhập số phần tử:")).
# Bên dưới dòng đọc đầu vào từ người dùng bằng hàm map () ..
a = list (map (int, input ("\ nenTer Các số:"). Dải (). Split ())) [: n].
in ("\ nlist là -", a).