python列表中随机两个_随机化两个列表并在python中维护顺序
随机化两个列表并在python中维护顺序
说我有两个简单的清单,
a = ['Spears', "Adele", "NDubz", "Nicole", "Cristina"]
b = [1,2,3,4,5]
len(a) == len(b)
我想做的是将a和a随机化,但要保持顺序。 因此,类似:
a = ["Adele", 'Spears', "Nicole", "Cristina", "NDubz"]
b = [2,1,4,5,3]
我知道我可以使用以下方法来随机排列一个列表:
import random
random.shuffle(a)
但这只是将a随机化,而我想将a随机化,并保持列表b中的“随机顺序”。
希望就如何实现这一目标提供任何指导。
JohnJ asked 2020-01-13T02:54:49Z
6个解决方案
84 votes
我将两个列表合并在一起,将结果列表随机排序,然后将它们拆分。 这利用了zip()
a = ["Spears", "Adele", "NDubz", "Nicole", "Cristina"]
b = [1, 2, 3, 4, 5]
combined = list(zip(a, b))
random.shuffle(combined)
a[:], b[:] = zip(*combined)
Tim answered 2020-01-13T02:55:10Z
16 votes
使用zip,它具有可以“两种”方式工作的出色功能。
import random
a = ['Spears', "Adele", "NDubz", "Nicole", "Cristina"]
b = [1,2,3,4,5]
z = zip(a, b)
# => [('Spears', 1), ('Adele', 2), ('NDubz', 3), ('Nicole', 4), ('Cristina', 5)]
random.shuffle(z)
a, b = zip(*z)
answered 2020-01-13T02:55:29Z
12 votes
为了避免重新发明轮子,请使用sklearn
from sklearn.utils import shuffle
a, b = shuffle(a, b)
Nimrod Morag answered 2020-01-13T02:55:49Z
8 votes
请注意,Tim的答案仅适用于Python 2,不适用于Python3。如果使用Python 3,则需要执行以下操作:
combined = list(zip(a, b))
random.shuffle(combined)
a[:], b[:] = zip(*combined)
否则会出现错误:
TypeError: object of type 'zip' has no len()
Adam_G answered 2020-01-13T02:56:14Z
2 votes
另一种方法可能是
a = ['Spears', "Adele", "NDubz", "Nicole", "Cristina"]
b = range(len(a)) # -> [0, 1, 2, 3, 4]
b_alternative = range(1, len(a) + 1) # -> [1, 2, 3, 4, 5]
random.shuffle(b)
a_shuffled = [a[i] for i in b] # or:
a_shuffled = [a[i - 1] for i in b_alternative]
这是相反的方法,但是仍然可以帮助您。
glglgl answered 2020-01-13T02:56:38Z
0 votes
这是我的风格:
import random
def shuffleTogether(A, B):
if len(A) != len(B):
raise Exception("Lengths don't match")
indexes = range(len(A))
random.shuffle(indexes)
A_shuffled = [A[i] for i in indexes]
B_shuffled = [B[i] for i in indexes]
return A_shuffled, B_shuffled
A = ['a', 'b', 'c', 'd']
B = ['1', '2', '3', '4']
A_shuffled, B_shuffled = shuffleTogether(A, B)
print A_shuffled
print B_shuffled
Nadav B answered 2020-01-13T02:56:58Z
python列表中随机两个_随机化两个列表并在python中维护顺序相关推荐
- python将10到1递减_递归地将列表递减1
不管怎样,这是学习递归的一种糟糕的方法,因为你用它来做一些本质上不是递归的事情.如果你的老师真的要你写一个程序,让列表中的元素递归地递减,那就让他/她感到羞耻.在 正如Haidro所指出的,解决这个问 ...
- python 将单词分割成字母_拆分两个字母创建单词python 3
我正在尝试编写一个代码,它将最终解码以下格式的文件中的单词:first letter, last letter rest of word 然后代码将获取这些单词并与单词表交叉检查,以确定哪些单词不是实 ...
- ggplot2箱式图两两比较_作图技巧024篇ggplot2在循环中的坑
"ggplot2在循环中的输出"生活科学哥-R语言科学 2020-12-23 8:28ggplot2用过之后,你肯定会爱上它:结合一些不错的包,可以得到非常有展现力的图片,但是呢 ...
- python需要多大的硬盘_适合新手练习的几个python小项目
关于python练习的小项目,其实就是一些常用的模块的针对练习 一.找出电脑中遗忘的大文件 # !/usr/bin/env python # _*_ coding:utf-8 -*- import o ...
- python编程书籍1020python编程书籍_从零单排之玩转Python安全编程(II)
转自:http://www.secpulse.com/archives/35893.html 都说Python大法好,作为一名合格的安全从业人员,不会几门脚本语言都不好意思说自己是从事安全行业的. 而 ...
- python 引用库的点.号_给大家分享一些实用的Python库
halo,大家好,我是特仑苏,今天给大家分享一些Python库,希望可以给大家带来一些用处! Python附带了几个预打包的库.但是,还有许多其他库可用于高级解释通用编程语言.您还可以从中了解异步Py ...
- python回归结果可视化图表解读_一个基于可视化理论的完美Python图表,快学起来
全文共3114字,预计学习时长14分钟 图源:unsplash 将数据转换为可视化图表是门学问.本文介绍了能从经典的<定量信息的视觉展示>(Edward Tufte)中学到的大部分知识,并 ...
- 每个python对象都具有布尔值_百度T7架构师透析Python对象你需要知道这些
1. Python对象 Python使用对象模型来存储数据.构造任何类型的值都是一个对象. 所有的Python对象都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对 ...
- python零基础入门教程免费版_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!...
随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 如果你是零基 ...
最新文章
- windbg-.process切换进程
- python删除一个文件_Python 实现一个小功能: 删除某路径下文件及文件夹的脚本...
- Hashtable、HashMap、TreeMap总结
- 图片压缩软件_简单易用的图片压缩软件gt;给图片减肥
- 给萌新的Flexbox简易入门教程
- mysql-cluster5.7搭建集群(实际测试有效)
- Java Collection小结
- 计算机等级考试无纸化模拟软件(免费版)
- 解决网易云音乐ubuntu客户端播放中无声音
- iOS 屏幕旋转监听
- 涂涂乐的详细实现之四--unity3d调用EmguCV实现图片识别
- 从阿里云购买、域名购买、SSL免费购买到SSL集成开发(网络编程安全三)
- stimulsoft入门教程:简单列表报表
- 阿里云centos下载地址
- ASEMI快恢复二极管FR207参数,FR207图片,FR207应用
- Microsoft Word 文档修改默认字体
- 小技巧:小米手机和小米电脑“勾搭”也能组建家庭安防监控
- usrp b210 参数记录
- jQuery获取子类第n个元素
- Scratch3.0——助力新进程序员理解程序(案例八、等差数列计算1)
热门文章
- 展望Java的未来:空值类型
- Spring Boot Redis简介
- 使用JPA和@NamedQueries的Spring数据
- 什么是javax.ws.rs.core.context? [ 第2部分 ]
- 打破冷漠僵局文章_研究僵局–第2部分
- 实践中的事件源和CQRS
- afterclass_通过beforeClass和afterClass设置增强Spring Test Framework
- Hystrix简介– Hello World
- JDK 9 REPL:入门
- 一个JAXB Nuance:字符串与枚举(受限制的XSD字符串)