n = [3, 5, 7]
def double(lst):
for x in lst:
x *= 2
print x
return lst
print double(n)
Tại sao điều này không trả lại def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
4?Cũng cần có một giải pháp tốt hơn trông giống như def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
5 nhưng nó cũng không hoạt động.Bất kỳ lời khuyên nào khác về các vòng lặp và danh sách sẽ được đánh giá cao. JWPFOX 5.03411 Huy hiệu vàng45 Huy hiệu bạc42 Huy hiệu đồng11 gold badges45 silver badges42 bronze badges Đã hỏi ngày 15 tháng 7 năm 2013 lúc 17:04Jul 15, 2013 at 17:04
Tại sao điều này không trả lại def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
4?
Bởi vì def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
7, hoặc def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
8 vì nó được gọi bên trong def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
9, không bao giờ được sửa đổi. def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
0 tương đương với def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
1 cho các số def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
2 và chỉ liên kết lại tên def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
2 mà không thay đổi đối tượng mà nó tham khảo.Để xem điều này, sửa đổi def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
9 như sau:def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
Để thay đổi danh sách các số tại chỗ, bạn phải gán lại các yếu tố của nó: def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
Nếu bạn không muốn sửa đổi nó tại chỗ, hãy sử dụng sự hiểu biết: def double(lst):
return [x * 2 for x in lst]
Đã trả lời ngày 15 tháng 7 năm 2013 lúc 17:06Jul 15, 2013 at 17:06 Fred Foofred FooFred Foo 348K74 Huy hiệu vàng726 Huy hiệu bạc825 Huy hiệu Đồng74 gold badges726 silver badges825 bronze badges 1 n = [3, 5, 7]
def double(lst):
for x in lst:
x *= 2
print x # item value changed and printed
return lst # original lst returned
print double(n)
Bạn chỉ sửa đổi giá trị mục bên trong danh sách và in số của nó nhưng trả về danh sách LST gốc. def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
5 là cú pháp sai, cách viết chính xác là def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
6. Một cách khác là sử dụng Lambda với bản đồ:print(list(map(lambda x:x*2,[1,2,3])))
Lưu ý: def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
7 sẽ đưa ra câu trả lời sai, nó xuất ra trong def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
8 giống như làm def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
9 Đã trả lời ngày 31 tháng 3 lúc 14:39Mar 31 at 14:39 Bạn có thể sử dụng danh sách hiểu cho điều này: FUNCTION: def double(lst):
return [i*2 for i in lst]
DEMO: n = [3, 5, 7]
print(double(n))
OUTPUT: [6, 10, 14]
Trong Python nhân danh sách sẽ tạo ra điều này: print([1, 2]*4)
# [1, 2, 1, 2, 1, 2, 1, 2]
Do đó, những gì bạn cần là nhân các mục của danh sách, đó là lý do tại sao bạn sử dụng vòng lặp ngay từ đầu, để lặp qua danh sách. Đã trả lời ngày 15 tháng 7 năm 2013 lúc 17:06Jul 15, 2013 at 17:06 Fred Foofred FooPeter Varo 348K74 Huy hiệu vàng726 Huy hiệu bạc825 Huy hiệu Đồng7 gold badges51 silver badges69 bronze badges Bạn chỉ sửa đổi giá trị mục bên trong danh sách và in số của nó nhưng trả về danh sách LST gốc. def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
5 là cú pháp sai, cách viết chính xác là def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
6. Một cách khác là sử dụng Lambda với bản đồ:Lưu ý: def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
7 sẽ đưa ra câu trả lời sai, nó xuất ra trong def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
8 giống như làm def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
9def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
0 Đã trả lời ngày 15 tháng 7 năm 2013 lúc 17:06Jul 15, 2013 at 17:06 jh314jh314jh314 Fred Foofred Foo15 gold badges61 silver badges81 bronze badges
3 348K74 Huy hiệu vàng726 Huy hiệu bạc825 Huy hiệu Đồng def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
1Bạn chỉ sửa đổi giá trị mục bên trong danh sách và in số của nó nhưng trả về danh sách LST gốc. def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
5 là cú pháp sai, cách viết chính xác là def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
6. Một cách khác là sử dụng Lambda với bản đồ:Apr 11, 2017 at
12:26 lotrus28lotrus28lotrus28 Lưu ý: def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
7 sẽ đưa ra câu trả lời sai, nó xuất ra trong def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
8 giống như làm def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
92 gold badges9 silver badges18 bronze badges def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))
2 Đã trả lời ngày 31 tháng 3 lúc 14:39 Bạn có thể sử dụng danh sách hiểu cho điều này: Trong Python nhân danh sách sẽ tạo ra điều này: Đã trả lời ngày 31 tháng 3 lúc 14:39 Bạn có thể sử dụng danh sách hiểu cho điều này: Trong Python nhân danh sách sẽ tạo ra điều này:Jan 28, 2021 at 19:03 Do đó, những gì bạn cần là nhân các mục của danh sách, đó là lý do tại sao bạn sử dụng vòng lặp ngay từ đầu, để lặp qua danh sách. Peter Varopeter Varo 11.3k7 Huy hiệu vàng51 Huy hiệu bạc69 Huy hiệu đồng print(multiplied_list) Vấn đề là bạn sửa đổi def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
2; Tuy nhiên, việc sửa đổi def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2
2 không thay đổi các yếu tố của danh sách.Nếu bạn muốn nhân mọi phần tử với hai phần tử, hãy sử dụng MAP:Feb 25, 2021 at 11:04 1 |