这是我能解释的最简单的方法。
当前,我有一个列表,该列表在每次更改时都通过打印来显示。我想称其为“卡片”列表,并为其分配了以下内容。
cards = ["A", "B", "C", "D"]
我不想每次更改时都打印整个列表,而是只希望对其进行单个显示更改。我将如何去做?
答案 0 :(得分:1)
>>> cards = ["A", "B", "C", "D"]
>>> from time import sleep
>>> for i in range(400):
>>> print("\r" + str(cards), end="")
>>> sleep(0.5)
这不符合您的目的吗?您正在重新打印整个内容,但是位置相同,因此除非担心速度,否则没有什么区别
答案 1 :(得分:1)
您可以使用带有tkinter的小型GUI来显示您的值,或者从@kevinkayaks建议中导出,在控制台中打印卡片:
import tkinter as tk
import random
def print_cards(cards):
print("\r" + ' '.join(cards), end='', flush=True)
def shuffle_cards():
random.shuffle(cards)
print_cards(cards)
for card, text in zip(cards, texts):
text.set(card)
root.after(1000, shuffle_cards)
cards = ["A", "B", "C", "D"]
root = tk.Tk()
texts = [tk.StringVar() for _ in range(4)]
for idx in range(4):
tk.Label(root, textvariable=texts[idx]).grid(row=0, column=idx)
texts[idx].set(cards[idx])
shuffle_cards()
root.mainloop()