python怎么随机取列表的值

Python013

python怎么随机取列表的值,第1张

第一步:

我分析如果从一堆数里随机抽取几个,并且按原来的顺序输出的话,那么至少要随机两次才能完成,第一次随机的值是确定随机几个数,第二次随机是确定随机的值。

第二步:

随机抽取几个可以用random.randint(1,n)这个函数来实现,这个n代表所要随机列表的长度。

第三步:

上一步出来一个数决定此次随机出几个值出来,现在假定是n,再次随机就是从列表里随机抽取n个值这个可以用random.sample(dict,n)这个方法实现,这个函数可以传入一个字典,和一个数字返回一个列表。

第四步:

得到的结果需要按原来的顺序输出,那么存储就需要考虑用dict了,因为字典的k-v特性可以实现找到原来的顺序,我具体的实现如下:

import random

#random_number(a)函数的功能传入一个数,返回1到这个数的随机数

def random_number(a):

    return random.randint(1,a)

#print(random_number(4))

#random_list(a,b)函数的功能,传入一个字典a,和一个数值b,

#1<=b<=a的长度,返回一个拥有b的个数值是a中的key值的list

def random_list(a,b):

    return random.sample(list(a),b)

a={1:'a',2:'j',3:'g',4:'h',5:'k',6:'i',7:'l',8:'f',9:'v',10:'b',11:2,12:5,13:'x'}

b=len(a)

#print(random_list(a,b))

#random_dictvalue函数的功能,传入一个字典a和一个列表b,返回以b为key,a中对应的value的值

def random_dictvalue(a,b):

    b.sort()

    for i in b:

        print(a.get(i),end=' ')

print(random_dictvalue(a,random_list(a,random_number(b))))

#  result

>>> ================================ RESTART ================================

>>> 

a f None

>>> ================================ RESTART ================================

>>> 

g i None

>>> ================================ RESTART ================================

>>> 

a j h l v b 2 5 x None

一共三个,分别取所有的键(keys()),值(values())和键值对(items())。

返回的类似于列表,但不是列表。其类型分别为dict_keys,dict_values和dict_items。

>>>count={'a': 1, 'b': 0, 'c': 99, 'd': 0}

>>>s=count.keys()

>>>s

dict_keys(['a', 'b', 'c', 'd'])

>>>t=count.values()

>>>t

dict_values([1, 0, 99, 0])

>>>x=count.items()

>>>x

dict_items([('a', 1), ('b', 0), ('c', 99), ('d', 0)])

取出后,它们都可以直接用于遍历,如:

for k in count.keys():

for v in count.values():

for k,v in count.items():

它们也都可以通过list()函数转换为列表使用:

>>>ls=list(s)

>>>ls

['a', 'b', 'c', 'd']

>>>lt=list(t)

>>>lt

[1, 0, 99, 0]

>>>lx=list(x)

>>>lx

[('a', 1), ('b', 0), ('c', 99), ('d', 0)]

“键值对”是组织数据的一种重要方式,广泛应用在Web系统中。键值对的基本思想是将“值”信息关联一个“键”信息,进而通过键信息查找对应值信息,这个过程叫映射。Python语言中通过字典类型实现映射。

Python语言中的字典使用大括号{}建立,每个元素是一个键值对,使用方式如下:

                     {<键1>:<值1>, <键2>:<值2>, ... , <键n>:<值n>}

其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。 

列表类型采用元素顺序的位置进行索引。由于字典元素“键值对”中键是值的索引,因此,可以直接利用键值对关系索引元素。

字典中键值对的索引模式如下,采用中括号格式:

                                         <值>= <字典变量>[<键>]

print(d[‘201801’])    

输出的也就是: 小明

使用大括号可以创建字典。通过索引和赋值配合,可以向字典中增加元素。

字典是存储可变数量键值对的数据结构,键和值可以是任意数据类型,通过键索引值,并可以通过键修改值。

字典类型有一些通用的操作函数

dict()函数用于生成一个空字典,作用和{}一致

字典类型存在一些操作方法,使用语法形式是:

                                 <字典变量>.<方法名称>(<方法参数>)

d.keys()返回字典中的所有键信息,返回结果是Python的一种内部数据类型dict_keys,专用于表示字典的键。如果希望更好的使用返回结果,可以将其转换为列表类型。

d.values()返回字典中的所有值信息,返回结果是Python的一种内部数据类型dict_values。如果希望更好的使用返回结果,也可以将其转换为列表类型。

d.items()返回字典中的所有键值对信息,返回结果是Python的一种内部数据类型dict_items。当然也可以转成列表类型   即: list(d.items())

d.get(key, default)根据键信息查找并返回值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。  例如:  就拿上边的数组d  来说 d.get(‘201801’,“不存在”)   相当于一个if语句  如果key  201801 存在  就返回201801 values  不存在就返回   默认值  不存在

d.pop(key, default)根据键信息查找并取出值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。相比d.get()方法,d.pop()在取出相应值后,将从字典中删除对应的键值对。  和d.get方法类似 

d.popitem()随机从字典中取出一个键值对,以元组(key,value)形式返回。取出后从字典中删除这个键值对。

d.clear()删除字典中所有键值对。

此外,如果希望删除字典中某一个元素,可以使用Python保留字del。   即: del  d[key]

字典类型也支持保留字in,用来判断一个键是否在字典中。如果在则返回True,否则返回False。

与其他组合类型一样,字典可以遍历循环对其元素进行遍历,基本语法结构如下:

                                      for <变量名>in <字典名>

                                            <语句块>

for循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得。

以上就是本章的所有内容,感谢大家.

Python 学习的基础(持续更新中......)