我试着做一个随机数,然后这个随机数将被用来调用follower_count从字典里面的列表数据,但我不能得到相同的追随者随机生成的数字甚至没有关闭,追随者也随机挑选
import random
data = [
{
'name': 'Instagram',
'follower_count': 346,
'description': 'Social media platform',
'country': 'United States'
},
{
'name': 'Cristiano Ronaldo',
'follower_count': 215,
'description': 'Footballer',
'country': 'Portugal'
},
{
'name': 'Ariana Grande',
'follower_count': 183,
'description': 'Musician and actress',
'country': 'United States'
},
{
'name': 'Dwayne Johnson',
'follower_count': 181,
'description': 'Actor and professional wrestler',
'country': 'United States'
},
{
'name': 'Selena Gomez',
'follower_count': 174,
'description': 'Musician and actress',
'country': 'United States'
},
{
'name': 'Kylie Jenner',
'follower_count': 172,
'description': 'Reality TV personality and Self-Made Billionaire',
'country': 'United States'
}
]
def comparison(followers_A,followers_B):
if followers_A>followers_B:
return followers_A
else:
return followers_B
def number():
'''Generates Random numbers'''
return random.randint(0,length)
def follower(number):
'''Calls the follower in the list'''
return data[number-1]['follower_count']
length=len(data)
print(f"{length} its the length of list")
print(f"{number()} its random number")
number=number()
follower = follower(number)
print(f"{follower} its followers")
print(data[11]['follower_count'])
3条答案
按热度按时间omqzjyyz1#
您的代码存在多个问题:
1.您对函数和变量都使用了相同的名称
number
和follower
,这可能会导致意外的行为。1.在
data[number-1]['follower_count']
中,如果从0
开始生成随机数,则-1
可能有问题。1.您试图访问
data[11]['follower_count']
,但您提供的data
列表较短(6个元素),因此没有第11个元素将导致IndexError
。1.在数字函数中有一个不一致;它生成一个从
0
到length
的随机整数,但列表索引从0
开始,一直到length - 1
。1.函数
comparison()
未使用(死代码)。下面是解决了上述问题的重构代码:
vfh0ocws2#
如果使用random.choice()从列表中选择[random]字典,事情会变得更简单。然后,您可以对所选字典执行任何操作:
cdmah0mi3#
我理解你的编码如下。你有一个包含几个字典的列表。在列表中的字典总数中生成一个随机数。你的程序应该获取列表中生成的随机数的数据。从所选的字典中,它应该返回追随者的姓名和数量(除此之外,它还应该打印列表的长度和所选的随机数。希望我的理解是正确的。
希望这将是有用的。一个小小的建议只是个建议。将程序编写为函数,而不是打印输出,返回所需的值。您可以在as和when之间使用print()语句来检查流是否正确(即检查不同级别的输出)。