精华内容
下载资源
问答
  • 方法一: np.random.shuffle (无返回值,直接将原数组重新随机排序) state = np.random.get_state() np.random.shuffle(train) np.random.set_state(state) np.random.shuffle(label) 方法二: 返回一个打乱的...

    方法一: np.random.shuffle (无返回值,直接将原数组重新随机排序)

    state = np.random.get_state()
    np.random.shuffle(train)
    np.random.set_state(state)
    np.random.shuffle(label)
    

    方法二: 返回一个打乱的index列表,可将其用于多个数组的按同一随机顺序进行排序

    shuffle_ix = np.random.permutation(np.arange(len(train_data)))
    train_data = train_data[shuffle_ix]
    train_label = train_label[shuffle_ix]
    
    展开全文
  • Python 如何随机打乱列表(List)排序

    千次阅读 2020-05-21 18:46:50
    Python 3.6 解决方案: 方案一: 有人可能会通过Random内置函数,来间接实现想要的结果。但是这种方式,太原始,也不够优雅,而且有种重复造轮子的嫌疑。这里我就不贴我自己通过random实现的效果了。 方案二: ...

    场景:

    现在有一个list:[1,2,3,4,5,6],我需要把这个list在输出的时候,是以一种随机打乱的形式输出。

    专业点的术语:将一个容器中的数据每次随机逐个遍历一遍。

    注意:不是生成一个随机的list集。

    环境:

    Python 3.6

    解决方案:

    方案一:

    有人可能会通过Random内置函数,来间接实现想要的结果。但是这种方式,太原始,也不够优雅,而且有种重复造轮子的嫌疑。这里我就不贴我自己通过random实现的效果了。

    方案二:

    Random中有一个random.shuffle()方法提供了完美的解决方案。代码如下:

    x = [1,2,3,4,5,6]
    random.shuffle(x)
    print(x)

    输出结果:

    第一次输出内容:[6, 5, 1, 3, 2, 4]
    第二次输出内容:[6, 1, 3, 5, 2, 4]
    第三次输出内容:[5, 3, 1, 2, 4, 6]

    从结果我们可以看出,输出是完全随机的,代码量就两行,不需要random,不需要for循环。

    源码解读:

    此部分原文链接:Python中打乱列表顺序 random.shuffle()的使用方法

    def shuffle(self, x, random=None):
        """Shuffle list x in place, and return None.
        原位打乱列表,不生成新的列表。
    
        Optional argument random is a 0-argument
        function returning a random float in [0.0, 1.0); 
        if it is the default None, 
        the standard random.random will be used.
        可选参数random是一个从0到参数的函数,返回[0.0,1.0)中的随机浮点;
        如果random是缺省值None,则将使用标准的random.random()。
        """
    
        if random is None:
            randbelow = self._randbelow
            for i in reversed(range(1, len(x))):
                # pick an element in x[:i+1] with which to exchange x[i]
                j = randbelow(i + 1)
                x[i], x[j] = x[j], x[i]
        else:
            _int = int
            for i in reversed(range(1, len(x))):
                # pick an element in x[:i+1] with which to exchange x[i]
                j = _int(random() * (i + 1))
                x[i], x[j] = x[j], x[i]
    

    注意 : 从代码的注释,我们看到random.shuffle()是对原list做修改,如果需要保留原list,请注意这个细节。 本文首发于BigYoung小站

    展开全文
  • Python实现随机排序 使用shuffle()函数对列表实现随机排序 from random import shuffle name = ["a", "b", "c","d", "e"] shuffle(name) for i in name: print(i) for i, j in enumerate(name): name[i] = (i + 1)...

    Python实现随机排序

    使用shuffle()函数对列表实现随机排序

    from random import shuffle
    name = ["a", "b", "c","d", "e"]
    shuffle(name)
    for i in name:
        print(i)
    for i, j in enumerate(name):
        name[i] = (i + 1).__str__() + ':' + j.__str__()
    print("---随机顺序---")
    for i in name:
        print(i)
    
    

    运行结果如图:
    运行结果

    展开全文
  • 随机列表 >>> from random import randrange as rand >>> [rand(0,10) for i in range(8)] [3, 1, 0, 9, 2, 9, 9, 5] >>> [rand(0,10) for i in range(8)] [9, 2, 4, 9, 3, 4, 2, 8] &...

    随机列表

    >>> from random import randrange as rand
    >>> [rand(0,10) for i in range(8)]
    [3, 1, 0, 9, 2, 9, 9, 5]
    >>> [rand(0,10) for i in range(8)]
    [9, 2, 4, 9, 3, 4, 2, 8]
    >>> [rand(0,10) for i in range(8)]
    [7, 2, 2, 4, 5, 0, 1, 8]
    >>> [rand(0,10) for i in range(8)]
    [9, 1, 2, 0, 1, 5, 9, 0]
    >>> 

    列表排序

    >>> from random import randrange as rand
    >>> listA=[rand(0,10) for i in range(8)]
    >>> listA
    [1, 2, 2, 4, 8, 6, 2, 9]
    >>> listB=sorted(listA)
    >>> listB
    [1, 2, 2, 2, 4, 6, 8, 9]
    >>> 

    随机集合

    >>> from random import randrange as rand
    >>> {rand(0,10) for i in range(8)}
    {2, 3, 5, 6, 8, 9}
    >>> {rand(0,10) for i in range(8)}
    {0, 1, 3, 8, 9}
    >>> {rand(0,10) for i in range(8)}
    {0, 1, 3, 4, 5, 6, 7, 8}
    >>> {rand(0,10) for i in range(8)}
    {0, 2, 3, 4}
    >>> 

    因为集合set不允许有重复值,这种方式生成实际上每次都有8个随机数生成,只是最后结果已去掉了重复数字,所以集合的元素个数也变随机的了。还有一点:这样生成的集合已是升序排列。

    集合排序

    直接对一个集合用sorted()排序会被强制转成列表的,用set()转回来即可。

    >>> setA={5, 1, 9, 4, 2, 6, 3, 8}
    >>> sorted(setA)
    [1, 2, 3, 4, 5, 6, 8, 9]
    >>> set(sorted(setA))
    {1, 2, 3, 4, 5, 6, 8, 9}
    >>> 

    随机元组

    与上面用同样的表达式,只是[] {} 换作(),但是并没有得到想要的“随机元组”,意外的产品:迭代器

    >>> from random import randrange as rand
    >>> (rand(0,10) for i in range(8))
    <generator object <genexpr> at 0x00000000029E6DD0>
    >>> (rand(0,10) for i in range(8))
    <generator object <genexpr> at 0x00000000029E6CF0>
    >>> g=(rand(0,10) for i in range(8))
    >>> type(g)
    <class 'generator'>
    >>> for i in g: print(i)
    
    6
    8
    9
    7
    5
    3
    9
    9
    >>> 

    用tuple()转换一下这个迭代器即可得到随机元组了: 

    >>> from random import randrange as rand
    >>> g=(rand(0,10) for i in range(8))
    >>> tuple(g)
    (5, 0, 4, 7, 5, 9, 5, 9)
    >>> tuple(rand(0,10) for i in range(8))
    (8, 3, 2, 5, 0, 7, 0, 9)
    >>> tuple(rand(0,10) for i in range(8))
    (5, 8, 1, 2, 3, 4, 5, 4)
    >>> tuple(rand(0,10) for i in range(8))
    (7, 8, 9, 0, 5, 8, 2, 2)
    >>> 

    元组排序

    直接对它排序也被转成列表,也说得过去,因为元组的元素不可变,再用tuple()转回来即可。

    >>> from random import randrange as rand
    >>> tupleA=tuple(rand(0,10) for i in range(8))
    >>> tupleB=sorted(tupleA)
    >>> tupleB
    [0, 2, 2, 2, 3, 4, 5, 7]
    >>> tupleB=tuple(sorted(tupleA))
    >>> tupleB
    (0, 2, 2, 2, 3, 4, 5, 7)
    >>> 

    随机字典

    字典的键是唯一的,所以这样生成的键值对个数也是不定的。

    >>> from random import randrange as rand
    >>> {rand(0,10):rand(0,10) for i in range(8)}
    {6: 7, 5: 3, 9: 0, 1: 9, 0: 5, 3: 6}
    >>> {rand(0,10):rand(0,10) for i in range(8)}
    {7: 2, 0: 2, 4: 7}
    >>> {rand(0,10):rand(0,10) for i in range(8)}
    {1: 7, 8: 8, 5: 6, 0: 4, 6: 6}
    >>> {rand(0,10):rand(0,10) for i in range(8)}
    {3: 6, 1: 6, 4: 4, 0: 1, 7: 5, 8: 5, 2: 7}
    >>> dictA={rand(0,10):rand(0,10) for i in range(8)}
    >>> type(dictA)
    <class 'dict'>
    >>> 

    固定键值对个数的生成法:

    >>> from random import randrange as rand
    >>> {i+1:rand(0,10) for i in range(8)}
    {1: 1, 2: 6, 3: 3, 4: 9, 5: 4, 6: 4, 7: 6, 8: 3}
    >>> {i+1:rand(0,10) for i in range(8)}
    {1: 9, 2: 3, 3: 4, 4: 9, 5: 5, 6: 4, 7: 3, 8: 8}
    >>> 

    字典排序

    直接对字典排序,只是生成一个升序的临时列表,字典本身并没有被排序。按那个临时列表的顺序,读取对应的键值即可生成升序字典了。

    >>> from random import randrange as rand
    >>> dictA={rand(0,10):rand(0,10) for i in range(8)}
    >>> dictA
    {8: 8, 4: 9, 0: 2, 6: 6, 3: 9, 9: 0}
    >>> sorted(dictA)
    [0, 3, 4, 6, 8, 9]
    >>> dictA
    {8: 8, 4: 9, 0: 2, 6: 6, 3: 9, 9: 0}
    >>> dictB={i:dictA[i] for i in sorted(dictA)}
    >>> dictB
    {0: 2, 3: 9, 4: 9, 6: 6, 8: 8, 9: 0}
    >>> type(dictB)
    <class 'dict'>
    >>> 

     

     

    展开全文
  • 在快速排序中就需要有一个步骤来进行列表的划分,使得对于元素左边的数字都小于它,元素右边的数字都大于他,今天遇到一个问题感觉很相似,在这里花一点时间解决一下,记录学习笔记  对指定的列表求得中位数以后...
  • 输入不累述,用随机生成列表来实现,重点考虑排序问题。 编码实现 1.编码实现(双循环实现) import random as rdm ls=[rdm.randint(0,9) for i in range(10)] print(ls) for i in range(len(ls)): for j in range(i+...
  • 编写程序,生成一个包含20个随机整数的列表,对前10个元素升序排序,后十个元素降序排序,并输出结果 问题分析: 使用列表切片,获取前十个和后十个元素,排序后赋值回原列表,然后输出 代码展示: import random...
  • python实现快速排序

    2021-06-05 20:25:48
    最坏情况 排一个倒叙的列表 解决方法,在列表随机找一个数与第一个数进行交换 递归 容易超过递归的最大深度 ''' import random # import sys # sys.setrecursionlimit(10000) 该表最大递归深度 ''' 快速排序
  • 简单选择排序: m_lst = [ [1,2,3,4,5,6,7,8,9], [2,3,4,5,7,8,9,6,1], [9,8,7,6,5,4,3,2,1] ] nums = m_lst[0] count_swap = 0 count_inter = 0 for i in range(len(nums)): maxindex = i for j in range...
  • python 随机产生10个三位数的列表,然后按照它们的个位数的大小进行排序 import random a=[] for i in range(10): a.append(random.randint(100,999)) def func(x): return x%10 print(sorted(a,key=func)) 输出结果...
  • python 实现插入排序

    2018-11-16 14:21:48
    """ 插入排序 """...print('待排序随机数列:{0}'.format(data)) length=len(data)#获取列表数据的个数 print(length) for i in range(1,length): x=data[i] ...
  • Python shuffle() 函数---元素随机排序

    千次阅读 2019-04-08 18:23:01
    shuffle() 方法将序列的所有元素随机排序。 以下是 shuffle() 方法的语法: import random random.shuffle (lst ) 例如: 给定一串排好序的列表a=[1,2,3,4,5], 设计一个函数,打乱这个列表(即每次输出列表...
  • #coding:utf8 import random # 随机生成0到1之间的浮点数 a=random.random() print(a) # 随机生成固定范围的浮点数 b=random.uniform(1, 10) print(b) ...#取字符串中随机多个字符,生成列表 d=ra
  • 0.产生7000长度的乱序列表 import random a_list = list(range(1,7000 + 1)) normal_list = random.sample(a_list, k...上面一段代码的运行结果如下,因为是随机打乱顺序,读者运行结果会不同: [2780, 397,...
  • python快速排序

    2019-03-27 21:49:21
    为了防止逆序列表导致性能大幅下降,quick_sort3()加入了随机因素,对比传统的快速排序quick_sort2(),排序性能比较稳定。 # -*- coding: UTF-8 -*- #!/usr/bin/python #python3.6 import sys #import numpy ...
  • shuffle() 方法将序列的所有元素随机排序。 语法 以下是 shuffle() 方法的语法: import random random.shuffle (lst ) 注意:shuffle()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法...
  • 引言:闲来想到冒泡排序中的列表数据的排序,就想试试用随机数生成一个列表排序试试,于是做了一下实验,本人实在是很菜,研究了一下终于还是完成了 1.在python中用random生成一个列表。 (0,1000)指列表中的数...
  • &quot;&quot;&quot; 冒泡排序:由小到大依次排序 ...# 设置待排序列表的长度 num = 100 # 设定列表中内容的起始值 start_num = 100 lst1 = [random.randint(start_num, start_num + 2 * num) for ..
  • 题目: 代码: 第一步: 第二步: 第三步: 第四步: 第五步:
  • #coding=utf-8 ...随机生成一个列表") list = [] for i in range(8):  num = random.choice(range(100))  list.append(num)  print(list) print("冒泡排序后:") for i in ra...
  • 求:完整Python代码 1、从1-10中随机选取3个数,按从小到大排列 ...2、从1-6中随机选取2个数,按从小到大排序 3、输出将1、2中组合元组再随机组合的结果 例如:1 2 3 1 2 或 7 8 9 1 2 等等全部结果!
  • python数据排序

    2020-07-27 23:50:36
    a = [random.randint(1, 100) for i in range(10)] # 获取随机生成的十个数的列表 def function_bbs( a ): count = len(a) -1 # 冒泡法需要执行的大循环次数 while count >= 1: #把最大的
  • 不得不说毕业后有所得也有所失,虽然学到了很多新的知识,但是原有的基础也遗忘了...为了比较排序速度,随机生成一个有10000个整数的列表,这些数会有重复 def randlis(): print time.time() lis = [] index = 0
  • 函数:shuffle将列表的所有元素随机排序,不生成新的数组返回 示例: import random list = [20, 16, 10, 5]; random.shuffle(list) # 参数只能是列表,元组、字典、字符串会报错 print("随机排序列表 : ", list) ...
  • 使用Python快速排序

    2020-05-29 09:19:59
    随机生成10个数字 利用递归,实现快速排序 3.2 方案 将要排序的数据分割成独立的三部分,任意选取一个数据作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序...
  • 这个名字清单就是一个有序的列表,给他们的名字做一个排序[0-zhangsan,1-lisi,2-wangwu,3-meimei,4-huanhuan],当我们想随机去一个名字的时候就是 名字清单 —&gt; 2号,那么2号对应的就是wangw...
  • python-简单的排序

    2021-06-01 14:42:01
    插入排序 ```python '''插入排序''' from random import ...print('随机生成的列表如下:') print(lst) for i in range(1,len(lst)): key=lst[i] j=i-1 while j>=0 and key>lst[j]: lst[j+1]=lst[j] j...
  • Python排序算法

    2011-04-19 17:24:00
    今天看了下数据结构,想用Python实现冒泡排序,快速排序,插入排序,堆排序。然后突然一想Python列表有自带的sort()方法啊,比较一下哪个算法更优。  随机生成包含10000个范围(0,65536)的随机数(int),然后我...
  • 要求:生成一个包含20个[1,50]随机整数的列表,然后使用插入法对给定整数列表中的所有元素升序排序。 思路如下: 1.将列表切片 并在切片的列表中,找到最小值的位置 2.根据切片的最小值+i(i代表循环的第几次)的来确定...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 189
精华内容 75
关键字:

python列表随机排序

python 订阅