我尝试制作一个随机数,然后该随机数将用于从列表数据内部的字典中调用 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'])
您的代码存在多个问题:
number
和 follower
,这可能会导致意外行为。comparison()
似乎根本没有在使用。data[number-1]['follower_count']
中,如果随机数是从 -1
开始生成的,则 0
可能会出现问题。data[11]['follower_count']
,但您提供的 data
列表较短(6 个元素),因此没有第 11 个元素会导致 IndexError
。0
开始到 length
的随机整数,但列表索引从 0
开始一直到 length - 1
。这是解决上述问题的重构代码:
import random
data = [
# ... (same as your data)
]
def generate_random_number(length):
'''Generates Random numbers within range of list length'''
return random.randint(0, length - 1)
def get_follower_count(index):
'''Calls the follower in the list by index'''
return data[index]['follower_count']
list_length = len(data)
random_index = generate_random_number(list_length)
follower_count = get_follower_count(random_index)
print(f"{list_length} is the length of list")
print(f"{random_index} is the random number")
print(f"{follower_count} is the follower count")