吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2270|回复: 9
收起左侧

[Python 转载] 100000条数据,为什么加入字典,达不到100000条

[复制链接]
yebean 发表于 2021-1-8 23:09
import random
lk = list()
for x in range(0, 1000000):
    k = random.randint(100000, 100000000)
    lk.append(k)
   
k = random.sample(lk, 100000)
print(len(k))
dInfo = {}
i = 0
for x in range(0, 100000):
    v = []
    name = "Jeapedu" + str(k[x])
    year = random.randint(1990, 2000)
    if x % 5 == 0:
        race = 'Meng'
    else:
        race = 'Han'
   
    if x % 3 == 0:
        sex = 'F'
    else:
        sex = "M"
   
    v = [race, year, sex]
    dInfo.setdefault(k[x], v)

print(len(dInfo))
dk = list(dInfo.keys())



image.png

100000条数据,为什么加入字典,达不到100000条

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fortytwo 发表于 2021-1-8 23:15
因为字典是去重的,如果有重复就会过滤掉,不会加入。key值不能相同
 楼主| yebean 发表于 2021-1-8 23:28
k = random.sample(lk, 100000)  应该不会有重复的呀?
古月不傲 发表于 2021-1-8 23:35
本帖最后由 古月不傲 于 2021-1-8 23:45 编辑

字典中的key不能重复,相当于C++中的std::map
k = random.randint(100000, 100000000) 这条语句产生不同的随机数,可能会出现相同的数
dInfo.setdefault(k[x], v) 执行很明显了
当你熟悉一门语言其他语言就容易理解多了,我也只今天2倍速度视频快速跳看了下python
列明 发表于 2021-1-9 00:16
import random
lk = list()
for x in range(0, 1000000):
    這裏要加do...loop語句
    (也不知道python裏面有沒有do...loop語句)
    直到隨機生成的k(k = random.randint(100000, 100000000))不在lk裏面,
    lk.append(k)
Steven2017 发表于 2021-1-9 00:25
少的数据被去重了
一抹啊 发表于 2021-1-9 02:00
因为达不到100000条
EnterpriseSolu 发表于 2021-1-9 08:20
想要重复的列表,可以用list或是queue
Cool_Breeze 发表于 2021-1-9 09:50
如果两个数值相等 (例如 1 和 1.0) 则两者可以被用来索引同一字典条目
fortytwo 发表于 2021-1-9 10:15
yebean 发表于 2021-1-8 23:28
k = random.sample(lk, 100000)  应该不会有重复的呀?

只要随机,就肯定有几率重复,你每次运行得到的字典长度都不一样也能有力的去证明这一点。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表