好的,我有一本字典:
df = pd.read_csv('input.csv')
df[['id', 'count']].to_csv('output.csv')
我希望打印随机数量的键值(2-4之间)。 这是我为列表提供了一个想法的例子。
stock = {
'GOOG':520.54,
'FB': 76.45,
'YHOO':39.28,
'AMZN': 306.21,
'AAPL': 99.76,
}
我不知道如何编写这个代码来为具有值和键的字典喷出类似的内容。
答案 0 :(得分:1)
dict上的方法items()将为您提供键/值对,例如
>>> stock.items()
[('GOOG', 520.54), ('YHOO', 39.28), ('FB', 76.45), ('AAPL', 99.76),
('AMZN', 306.21)]
所以你可以试试:
print(random.choices(population=list(stock.items()),k=random.randrange(2, 5)))
答案 1 :(得分:1)
更新了答案(确保没有重复)
首先获取字典中的键列表(注意这需要转换为list
或下一步不能工作)。接下来,使用random.shuffle()
来重新排列此键列表并确保随机顺序。然后,只需使用随机列表中的前2-4个键创建一个可以打印的新随机字典。请注意,此方法可确保所选的2-4个随机密钥是唯一的(与使用random.choice()
或random.choices()
的方法不同,这可能会产生重复)。
my_keys = list(stock.keys())
random.shuffle(my_keys)
my_stock = {key: stock[key] for key in my_keys[:random.randrange(2,5)]}
print(my_stock)
示例输出:
{'GOOG': 520.54, 'AMZN': 306.21}
{'AMZN': 306.21, 'GOOG': 520.54, 'YHOO': 39.28}
{'AAPL': 99.76, 'AMZN': 306.21, 'YHOO': 39.28}
答案 2 :(得分:0)
如果我正确理解您的问题,您希望获得2到4个随机密钥及其值。
这个怎么样?
import random
for i in range(3):
randomKey = random.choice(stock.keys())
print(randomKey+" : "+stock[randomKey])
基本上就是这样。我选择了for循环的3次迭代,因为你说,你需要2到4个随机密钥。当然你可以检查没有键出现两次。
usedKeys = []
稍后检查您的随机密钥是否存在,如果不存在,请将其附加到列表中。