0

不久前我问了一个问题,一个好心人帮助了我,除了我不允许使用 import json,无论如何我可以把它拿出来仍然让代码工作,我试着把它拿出来,但是它没有用。请帮忙!谢谢!

import json


suits = ["Clubs", "Diamonds", "Hearts", "Spades"]
values = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]
deck = []  # creates an empty List
for s in suits:
    for v in values:
        deck.append(v + " of " + s)

print("Original List: ")
print(json.dumps(deck, indent=4))
print("")

sfuffled_deck = []

count = 0

while len(deck):
    if count%2 == 1:
        sfuffled_deck.append(deck.pop())
    else:
        sfuffled_deck.append(deck.pop(0))
    count+=1

print("Shuffled List: ")
print(json.dumps(sfuffled_deck, indent=4))
4

4 回答 4

1

你需要模拟你json.dumps会做什么。幸运的是,在这种情况下,它相当简单:

print('[\n' + ',\n'.join([f'    "{x}"' for x in sfuffled_deck]) + '\n]')

使用 f 字符串,您可以添加四个空格和引号,用逗号和换行符将所有内容连接起来,并在所有内容周围添加括号。

于 2020-05-19T21:11:18.030 回答
0

想用 json 做什么?

如果你想显示你洗牌的牌组,只需使用这个:

for card in shuffled_deck: print(card)

Json 允许您构建数据、保存它们并在以后使用它们。那是你想做的吗?然后,您可以写入 .txt 文件。稍后,您打开它,读取它并获取您的数据,而无需使用 json。

于 2020-05-19T21:12:29.427 回答
0

内联修改:

# import json


suits = ["Clubs", "Diamonds", "Hearts", "Spades"]
values = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]
deck = []  # creates an empty List
for s in suits:
    for v in values:
        deck.append(v + " of " + s)

print("Original List: ")
_ = [print("    " + card) for card in deck]
# print(json.dumps(deck, indent=4))
print("")

sfuffled_deck = []

count = 0

while len(deck):
    if count%2 == 1:
        sfuffled_deck.append(deck.pop())
    else:
        sfuffled_deck.append(deck.pop(0))
    count+=1

print("Shuffled List: ")
_ = [print("    " + card) for card in sfuffled_deck]
# print(json.dumps(sfuffled_deck, indent=4))

于 2020-05-19T21:15:23.597 回答
-1

除非导入 json 模块,否则您将无法访问它,因此如果没有它,对 json.dumps 的调用将无法工作。您必须编写自己的代码来自己执行此逻辑。

在完全重新发明已经存在的东西之前,你应该问自己的第一个问题是为什么?通常,如果您可以使用标准库中已经存在的东西,那么重新实现它是不好的做法。但是,如果这是一个学校项目,那可能就是重点。

祝你好运!

于 2020-05-19T21:11:51.210 回答