Python 如何将一个列表随机分成两个长度相同的列表
我有一个函数,希望将一个列表分割为两个具有相同长度和随机列表项的列表 代码: 输出如下所示:Python 如何将一个列表随机分成两个长度相同的列表,python,python-3.x,list,Python,Python 3.x,List,我有一个函数,希望将一个列表分割为两个具有相同长度和随机列表项的列表 代码: 输出如下所示: ['mohsen', 'hasan', 'mahdi', 'daniyal', 'reza', 'alireza'] ['amin', 'komeil'] 但我希望它是这样的: ['daniyal', 'reza', 'hasan', 'alireza'] ['komeil', 'mahdi', 'mohsen', 'amin'] 相同长度的随机变量似乎需要更改剪切变量 随机导入 l=['amin'
['mohsen', 'hasan', 'mahdi', 'daniyal', 'reza', 'alireza']
['amin', 'komeil']
但我希望它是这样的:
['daniyal', 'reza', 'hasan', 'alireza']
['komeil', 'mahdi', 'mohsen', 'amin']
相同长度的随机变量似乎需要更改
剪切
变量
随机导入
l=['amin','hasan','reza','mohsen','alireza','mahdi','daniyal','komeil']
half_len=len(l)//2
随机。洗牌(l)
l1=l[:一半长度]
l2=l[一半长度:]
打印(l1、l2)
似乎需要更改
cut
变量
随机导入
l=['amin','hasan','reza','mohsen','alireza','mahdi','daniyal','komeil']
half_len=len(l)//2
随机。洗牌(l)
l1=l[:一半长度]
l2=l[一半长度:]
打印(l1、l2)
randint
只需返回一个介于[0,len(playerslist))
之间的整数值,因此使用cut
对列表进行切片,列表将以随机两种不同的长度结束
简单地说,您可以:
def playersorting(playerslist):
随机。洗牌(玩家列表)
剪切=整数(len(playerslist)/2)
列表_1=播放器列表[:剪切]
list_2=播放器列表[剪切:]
打印(列表1)
打印(列表2)
randint
只需返回一个介于[0,len(playerslist))
之间的整数值,因此使用cut
对列表进行切片,列表将以随机两种不同的长度结束
简单地说,您可以:
def playersorting(playerslist):
随机。洗牌(玩家列表)
剪切=整数(len(playerslist)/2)
列表_1=播放器列表[:剪切]
list_2=播放器列表[剪切:]
打印(列表1)
打印(列表2)
一种方法是使用[random.sample()][1]
:
from random import sample
def playersorting(playerslist):
list_1 = sample(playerslist, len(playerslist) // 2)
list_2 = [player for player in playerslist if player not in list_1]
print(list_1)
print(list_2)
playerslist = ['amin', 'hasan', 'reza', 'mohsen', 'alireza', 'mahdi', 'daniyal', 'komeil']
playersorting(playerslist)
说明:
random.sample()
接受一个数组population
和一个数字k
,并返回一个新的数组,该数组的长度k
是从数组population
中随机选择的元素
sample(playerslist,len(playerslist)//2)
返回一个长度为len(playerslist)//2
的数组,该数组由playerslist
中随机选择的元素组成
[player for players in player in player if player not in list_1]
返回players list
中不在前半个随机元素内的每个元素
尽管建议使用此方法。一种方法是使用[
random.sample()][1]
:
from random import sample
def playersorting(playerslist):
list_1 = sample(playerslist, len(playerslist) // 2)
list_2 = [player for player in playerslist if player not in list_1]
print(list_1)
print(list_2)
playerslist = ['amin', 'hasan', 'reza', 'mohsen', 'alireza', 'mahdi', 'daniyal', 'komeil']
playersorting(playerslist)
说明:
random.sample()
接受一个数组population
和一个数字k
,并返回一个新的数组,该数组的长度k
是从数组population
中随机选择的元素
sample(playerslist,len(playerslist)//2)
返回一个长度为len(playerslist)//2
的数组,该数组由playerslist
中随机选择的元素组成
[player for players in player in player if player not in list_1]
返回players list
中不在前半个随机元素内的每个元素
虽然建议使用这种方法。如果你想将一个列表分成两个大小相同的列表,那么为什么你要将
cut
作为随机数?只需执行cut=len(playerslist)//2
@RustamGarayev Tnx…它起作用了如果你想把一个列表分成两个大小相同的列表,那你为什么要把cut
作为随机数呢?只要做cut=len(playerslist)//2
@RustamGarayev Tnx…它起作用了
['mahdi', 'amin', 'mohsen', 'reza']
['komeil', 'alireza', 'hasan', 'daniyal']
import random
def playersorting(playerslist):
random.shuffle(playerslist)
list_1 = playerslist[0:4]
list_2 = playerslist[4:8]
print(list_1)
print(list_2)
playerslist = ['amin', 'hasan', 'reza', 'mohsen', 'alireza', 'mahdi', 'daniyal', 'komeil']
playersorting(playerslist)
from random import sample
def playersorting(playerslist):
list_1 = sample(playerslist, len(playerslist) // 2)
list_2 = [player for player in playerslist if player not in list_1]
print(list_1)
print(list_2)
playerslist = ['amin', 'hasan', 'reza', 'mohsen', 'alireza', 'mahdi', 'daniyal', 'komeil']
playersorting(playerslist)