Hướng dẫn how do you replace a space in a list in python? - làm thế nào để bạn thay thế một khoảng trắng trong danh sách trong python?

Tôi có một danh sách các đối tượng được thêm vào cơ sở dữ liệu MySQL và chứa khoảng trắng. Tôi muốn loại bỏ các khoảng trống như bên dưới, nhưng mã tôi sử dụng không hoạt động?

hello = ['999 ',' 666 ']

k = []

for i in hello:
    str(i).replace(' ','')
    k.append(i)

print k

hỏi ngày 12 tháng 7 năm 2010 lúc 23:04Jul 12, 2010 at 23:04

Hướng dẫn how do you replace a space in a list in python? - làm thế nào để bạn thay thế một khoảng trắng trong danh sách trong python?

3

Các chuỗi trong Python là bất biến (có nghĩa là dữ liệu của chúng không thể được sửa đổi) vì vậy phương thức thay thế không sửa đổi chuỗi - nó trả về một chuỗi mới. Bạn có thể sửa mã của mình như sau:

for i in hello:
    j = i.replace(' ','')
    k.append(j)

Tuy nhiên, một cách tốt hơn để đạt được mục tiêu của bạn là sử dụng khả năng hiểu danh sách. Ví dụ: mã sau đây sẽ loại bỏ các không gian dẫn đầu và dấu ngoặc ra khỏi mỗi chuỗi trong danh sách bằng cách sử dụng strip:

hello = [x.strip(' ') for x in hello]

Đã trả lời ngày 12 tháng 7 năm 2010 lúc 23:06Jul 12, 2010 at 23:06

Mark Byersmark ByersMark Byers

786K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồng188 gold badges1553 silver badges1440 bronze badges

5

Danh sách hiểu [num.strip() for num in hello] là nhanh nhất.

>>> import timeit
>>> hello = ['999 ',' 666 ']

>>> t1 = lambda: map(str.strip, hello)
>>> timeit.timeit(t1)
1.825870468015296

>>> t2 = lambda: list(map(str.strip, hello))
>>> timeit.timeit(t2)
2.2825958750515269

>>> t3 = lambda: [num.strip() for num in hello]
>>> timeit.timeit(t3)
1.4320335103944899

>>> t4 = lambda: [num.replace(' ', '') for num in hello]
>>> timeit.timeit(t4)
1.7670568718943969

Đã trả lời ngày 13 tháng 7 năm 2010 lúc 0:44Jul 13, 2010 at 0:44

Rizarizariza

15,5K7 Huy hiệu vàng28 Huy hiệu bạc29 Huy hiệu đồng7 gold badges28 silver badges29 bronze badges

2

result = map(str.strip, hello)

Đã trả lời ngày 12 tháng 7 năm 2010 lúc 23:05Jul 12, 2010 at 23:05

yedpodtrzitkoyedpodtrzitkoyedpodtrzitko

8,5712 Huy hiệu vàng36 Huy hiệu bạc39 Huy hiệu đồng2 gold badges36 silver badges39 bronze badges

2

Phương thức chuỗi trả về chuỗi sửa đổi.

k = [x.replace(' ', '') for x in hello]

Đã trả lời ngày 12 tháng 7 năm 2010 lúc 23:06Jul 12, 2010 at 23:06

Mark Byersmark Byers

def normalize_space(s):
    """Return s stripped of leading/trailing whitespace
    and with internal runs of whitespace replaced by a single SPACE"""
    # This should be a str method :-(
    return ' '.join(s.split())

replacement = [normalize_space(i) for i in hello]

786K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồngJul 13, 2010 at 0:13

Danh sách hiểu [num.strip() for num in hello] là nhanh nhất.John Machin

Đã trả lời ngày 13 tháng 7 năm 2010 lúc 0:4411 gold badges138 silver badges185 bronze badges

for element in range(0,len(hello)):
      d[element] = hello[element].strip()

RizarizaSep 23, 2016 at 19:22

1

15,5K7 Huy hiệu vàng28 Huy hiệu bạc29 Huy hiệu đồng

Đã trả lời ngày 12 tháng 7 năm 2010 lúc 23:05Jul 12, 2010 at 23:12

yedpodtrzitkoyedpodtrzitkoallonym

8,5712 Huy hiệu vàng36 Huy hiệu bạc39 Huy hiệu đồng10 silver badges18 bronze badges