Hướng dẫn how to save list in python - cách lưu danh sách trong python

93

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Giả sử tôi có danh sách

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
9 và nó được thay đổi trong khi chương trình của tôi đang chạy. Làm thế nào tôi có thể lưu nó vào một tệp để lần sau chương trình được chạy, tôi có thể truy cập danh sách đã thay đổi dưới dạng loại
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
0?

Tôi đã thử:

score=[1,2,3,4,5]

with open("file.txt", 'w') as f:
    for s in score:
        f.write(str(s) + '\n')

with open("file.txt", 'r') as f:
    score = [line.rstrip('\n') for line in f]


print(score)

Nhưng điều này dẫn đến các yếu tố trong danh sách là các chuỗi không phải là số nguyên.

Hướng dẫn how to save list in python - cách lưu danh sách trong python

Karl Knechtel

59.3k10 Huy hiệu vàng86 Huy hiệu bạc130 Huy hiệu đồng10 gold badges86 silver badges130 bronze badges

Đã hỏi ngày 2 tháng 1 năm 2015 lúc 16:47Jan 2, 2015 at 16:47

Hướng dẫn how to save list in python - cách lưu danh sách trong python

OceanSceoseCeanescesOceanescence

1.7882 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng2 gold badges17 silver badges27 bronze badges

2

Bạn có thể sử dụng mô -đun

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 cho điều đó. Mô -đun này có hai phương pháp,

  1. Pickling (Dump): Chuyển đổi các đối tượng Python thành một biểu diễn chuỗi.: Convert Python objects into a string representation.
  2. Khởi động (tải): Lấy các đối tượng gốc từ biểu diễn chuỗi được lưu trữ.: Retrieving original objects from a stored string representation.

https://docs.python.org/3.3/library/pickle.html

Code::

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]

Cũng là json

  1. bãi rác/bãi rác: sê -ri
  2. Tải/tải: Deserialize

https://docs.python.org/3/library/json.html

Code::

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]

Đã trả lời ngày 2 tháng 1 năm 2015 lúc 16:49Jan 2, 2015 at 16:49

3

Tôi quyết định tôi không muốn sử dụng dưa chua vì tôi muốn có thể mở tệp văn bản và thay đổi nội dung của nó một cách dễ dàng trong quá trình thử nghiệm. Do đó, tôi đã làm điều này:

score = [1,2,3,4,5]

with open("file.txt", "w") as f:
    for s in score:
        f.write(str(s) +"\n")
score = []
with open("file.txt", "r") as f:
  for line in f:
    score.append(int(line.strip()))

Vì vậy, các mục trong tệp được đọc dưới dạng số nguyên, mặc dù được lưu trữ vào tệp dưới dạng chuỗi.

Đã trả lời ngày 3 tháng 2 năm 2015 lúc 17:34Feb 3, 2015 at 17:34

Hướng dẫn how to save list in python - cách lưu danh sách trong python

OceanSceoseCeanescesOceanescence

1.7882 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng2 gold badges17 silver badges27 bronze badges

2

Bạn có thể sử dụng mô -đun

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 cho điều đó. Mô -đun này có hai phương pháp,

import json

score=[1,2,3,4,5]

with open("file.json", 'w') as f:
    # indent=2 is not needed but makes the file human-readable 
    # if the data is nested
    json.dump(score, f, indent=2) 

with open("file.json", 'r') as f:
    score = json.load(f)

print(score)

Advantages::

  1. Pickling (Dump): Chuyển đổi các đối tượng Python thành một biểu diễn chuỗi.
  2. Khởi động (tải): Lấy các đối tượng gốc từ biểu diễn chuỗi được lưu trữ.
  3. Cũng là json

Disadvantages::

  1. bãi rác/bãi rác: sê -ri
  2. Tải/tải: Deserialize

Đã trả lời ngày 2 tháng 1 năm 2015 lúc 16:49:

  • Tôi quyết định tôi không muốn sử dụng dưa chua vì tôi muốn có thể mở tệp văn bản và thay đổi nội dung của nó một cách dễ dàng trong quá trình thử nghiệm. Do đó, tôi đã làm điều này:
  • Vì vậy, các mục trong tệp được đọc dưới dạng số nguyên, mặc dù được lưu trữ vào tệp dưới dạng chuỗi.
  • Đã trả lời ngày 3 tháng 2 năm 2015 lúc 17:34
  • Mặc dù câu trả lời được chấp nhận hoạt động, bạn thực sự nên sử dụng mô -đun ____22 của Python (xem phần cuối của bài đăng để so sánh với
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    1):
  • >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    2 là một định dạng dữ liệu được áp dụng và tiêu chuẩn hóa rộng rãi, vì vậy các chương trình không phải là Python có thể dễ dàng đọc và hiểu các tệp JSON

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2 Các tệp có thể đọc được và dễ chỉnh sửa (văn bản thuần túy)Jan 3, 2020 at 22:29

Hướng dẫn how to save list in python - cách lưu danh sách trong python

Bất kỳ cấu trúc danh sách/từ điển lồng nhau hoặc không được lồng có thể được lưu vào tệp

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2 (miễn là tất cả các nội dung đều có thể nối tiếp).Jay Mody

Dữ liệu được lưu trữ theo văn bản đơn giản (tức là không nén), làm cho nó trở thành một tùy chọn chậm và không chính xác cho một lượng lớn dữ liệu.1 gold badge8 silver badges23 bronze badges

Nội dung của một danh sách/từ điển cần phải có thể nối tiếp trước khi bạn có thể lưu nó dưới dạng JSON. Mô -đun

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2 sẽ cho phép bạn lưu chuỗi, int, floats, boolean và không có giá trị, bạn sẽ cần viết mã tuần tự hóa và khử hóa tùy chỉnh để lưu các đối tượng, lớp và chức năng.

data = [0,1,2,3,4,5]
with open("test.txt", "w") as file:
    file.write(str(data))

with open("test.txt", "r") as file:
    data2 = eval(file.readline())

# Let's see if data and types are same.
print(data, type(data), type(data[0]))
print(data2, type(data2), type(data2[0]))

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 vs
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2, tôi nên sử dụng cái nào ?:

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 vs
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2, tôi nên sử dụng cái nào ?:

Nếu bạn muốn lưu trữ một cái gì đó mà bạn biết rằng bạn sẽ chỉ sử dụng trong bối cảnh chương trình Python, hãy sử dụng

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1Mar 10, 2018 at 13:28

Hướng dẫn how to save list in python - cách lưu danh sách trong python

2

Nếu bạn cần lưu dữ liệu không thể nối tiếp theo mặc định (tức là các đối tượng), hãy tự lưu lại rắc rối và sử dụng

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1

sampleList1=['z','x','a','b']
sampleList2=[[1,2],[4,5]]

Nếu bạn cần một giải pháp bất khả tri nền tảng, hãy sử dụng

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2

def saveList(myList,filename):
    # the filename should mention the extension 'npy'
    np.save(filename,myList)
    print("Saved successfully!")

Nếu bạn cần có khả năng kiểm tra và chỉnh sửa dữ liệu trực tiếp, hãy sử dụng

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2

Nếu bạn cần một cái gì đó mạnh mẽ và lâu dài, hãy sử dụng
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2 (
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 sẽ không hoạt động chính xác nếu bạn thay đổi vị trí của các lớp/tệp hoặc thực hiện các thay đổi phá vỡ mã)

Đã trả lời ngày 3 tháng 1 năm 2020 lúc 22:29

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
0

Jay Modyjay ModyJun 20, 2019 at 17:33

Hướng dẫn how to save list in python - cách lưu danh sách trong python

3.1371 Huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồngManu Gond

Nếu bạn không muốn sử dụng Pickle, bạn có thể lưu trữ danh sách dưới dạng văn bản và sau đó đánh giá nó:2 silver badges6 bronze badges

[0, 1, 2, 3, 4, 5] Lớp 'danh sách' lớp 'int'

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
1

Đã trả lời ngày 10 tháng 3 năm 2018 lúc 13:28Jan 2, 2015 at 17:12

Nếu bạn muốn bạn có thể sử dụng chức năng lưu của Numpy để lưu danh sách dưới dạng tệp. Nói rằng bạn có hai danh sáchMike McKerns

Đây là chức năng lưu danh sách dưới dạng tệp, hãy nhớ rằng bạn cần giữ phần mở rộng .npy8 gold badges113 silver badges137 bronze badges

4

Và đây là chức năng tải tệp vào danh sách

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
2

def loadList(filename):
    # the filename should mention the extension 'npy'
    tempNumpyArray=np.load(filename)
    return tempNumpyArray.tolist()

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
3

một ví dụ làm việcJan 3, 2020 at 22:04

Hướng dẫn how to save list in python - cách lưu danh sách trong python

Đã trả lời ngày 20 tháng 6 năm 2019 lúc 17:33Antonin GAVREL

Manu Gondmanu Gond4 gold badges47 silver badges65 bronze badges

1642 Huy hiệu bạc6 Huy hiệu đồng

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
4

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 và các gói tuần tự hóa khác hoạt động. Vì vậy, viết nó vào một tệp
score = [1,2,3,4,5]

with open("file.txt", "w") as f:
    for s in score:
        f.write(str(s) +"\n")
7 mà sau đó bạn có thể nhập.

Đã trả lời ngày 2 tháng 1 năm 2015 lúc 17:12Dec 24, 2018 at 9:16

Hướng dẫn how to save list in python - cách lưu danh sách trong python

1

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
5

Mike McKernsmike McKernsJul 24, 2020 at 6:56

Hướng dẫn how to save list in python - cách lưu danh sách trong python

Huy hiệu vàng 32K8113 Huy hiệu bạc137 Huy hiệu đồngbitbang

Điều tôi không thích với nhiều câu trả lời là nó thực hiện quá nhiều cuộc gọi hệ thống bằng cách ghi vào dòng tệp trên mỗi dòng. IMHO tốt nhất là tham gia danh sách với '\ n' (trả về dòng) và sau đó chỉ viết nó một lần vào tệp:12 silver badges17 bronze badges

Và sau đó để mở nó và nhận lại danh sách của bạn:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
6

Vì vậy, những gì tôi đã làm, tôi đã thay đổi danh sách.txt thành list.py và sau đó nhập danh sách từ tệp python. Ví dụ:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
7

Then:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
8

Đã trả lời ngày 20 tháng 10 năm 2021 lúc 2:46Oct 20, 2021 at 2:46

Hướng dẫn how to save list in python - cách lưu danh sách trong python

Bạn có thể lưu danh sách Python không?

Không có chức năng sẵn có để lưu một danh sách. Nhưng bạn có thể sử dụng tập lệnh Python để lưu một danh sách trong tệp văn bản.you can use a python script to save one list in a text file.

Làm cách nào để lưu danh sách vào một tệp trong Python?

Các bước để viết danh sách vào một tệp trong Python..
Mở tệp ở chế độ ghi.Vượt qua đường dẫn tệp và chế độ truy cập W đến hàm Open ().....
Lặp lại danh sách bằng cách sử dụng một vòng lặp.Sử dụng cho vòng lặp để lặp từng mục từ một danh sách.....
Viết mục hiện tại vào tệp.....
Đóng tệp sau khi hoàn thành thao tác ghi ..

Làm cách nào để lưu trữ vĩnh viễn một danh sách trong Python?

Lưu danh sách trong một tập tin.Bạn có thể sử dụng JSON để định dạng và phân tích nó.Bạn cũng có thể "lưu" nó (thuật ngữ chính xác là "nối tiếp hóa") bằng Pickle (docs.python.org/3/l Library/pickle.html).Điều này có thể được sử dụng cho một loạt các đối tượng Python như từ điển, v.v.use json to format and parse it. You can also "save" it (the correct term is "serialize") using pickle (docs.python.org/3/library/pickle.html). This can be used for a variety of python objects such as dictionaries etc...

Làm cách nào để lưu trữ một danh sách trong danh sách Python?

Python cung cấp một tùy chọn tạo danh sách trong danh sách.Nếu đặt đơn giản, đó là một danh sách lồng nhau nhưng với một hoặc nhiều danh sách bên trong dưới dạng một yếu tố.Ở đây, [a, b], [c, d] và [e, f] là các danh sách riêng biệt được truyền dưới dạng các yếu tố để tạo một danh sách mới.Đây là danh sách các danh sách.it is a nested list but with one or more lists inside as an element. Here, [a,b], [c,d], and [e,f] are separate lists which are passed as elements to make a new list. This is a list of lists.