Đ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
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!
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
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: //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
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]:
4 tối ưu hơnalist, blist, clist, dlist, elist = [[] for i in range[5]]
5 trong Python2. [Tham khảo]alist, blist, clist, dlist, elist = [[] for i in range[5]]
Biến
6 là không thể sử dụng nên sử dụngalist, 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ớialist, blist, clist, dlist, elist = [[] for i in range[5]]
4.alist, blist, clist, dlist, elist = [[] for i in range[5]]
Đã trả lời ngày 20 tháng 10 năm 2018 lúc 7:28Oct 20, 2018 at 7:28
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]]
1sẽ 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
Bryson S.Bryson S.Bryson S.
Huy hiệu Bạc 911 Huy hiệu Đồng1 silver badge3 bronze badges
1