首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有谁知道如何修改函数,只将生成的列表输出到csv,而不会将df中的每隔一行按范围内的数字拆分?

有谁知道如何修改函数,只将生成的列表输出到csv,而不会将df中的每隔一行按范围内的数字拆分?
EN

Stack Overflow用户
提问于 2020-07-02 04:32:00
回答 2查看 45关注 0票数 0
代码语言:javascript
复制
clip1=[1,3,4,5,6,7]
clip2=[8,10,11,12,13]
clip3=[15,16,18,19,20]
cut=[]

def toe_clip(clip1, clip2, clip3):
    a= random.choice(clip1)
    b= random.choice(clip2)
    c= random.choice(clip3)
    cut.append([a,b,c])
    return 

for i in range(200):
    toe_clip(clip1,clip2,clip3)
    cut.append(i)

print(cut)

df = pd.DataFrame(data={"Toe_clip_ID": cut})
df.to_csv("toe_clip2.csv", sep=',',index=False)

我正在尝试创建一个随机生成的数字组合列表。组合必须有3个数字。第一个数字需要来自clip1列表。clip2列表中的第二个数字,等等。此外,生成的组合必须是唯一的。没有组合可以多次使用。

我正在尝试将生成的cut列表保存到csv文件中。使用显示的代码,输出由range(200)中的数字分隔,范围的组合和数量每隔一行交替。有谁知道如何只打印生成的剪切组合列表,而不打印相应的0-199数字?打印当前cut列表时,我将输出的开头部分复制到下面。

[6,11,18,0,4,13,19,1,3,12,15,2,3,12,20,3,3,8,18,4,10,16,5,6,8,18,6,3,11,20,7,5,10,18,8,4,18,9,7,8,19,10,1,12,19,11,7,12,18,12,7,10,18,13,5,10,18,14,7,11,15,15,4,12,16,

EN

回答 2

Stack Overflow用户

发布于 2020-07-02 09:49:10

您可以使用itertools.product

代码语言:javascript
复制
clip1=[1,3,4,5,6,7]
clip2=[8,10,11,12,13]
clip3=[15,16,18,19,20]
from itertools import product
cut = [list(i) for i in product(clip1, clip2, clip3)]
print(cut)

输出:

代码语言:javascript
复制
[[1, 8, 15], [1, 8, 16], [1, 8, 18], [1, 8, 19], [1, 8, 20], [1, 10, 15], [1, 10, 16], [1, 10, 18], [1, 10, 19], [1, 10, 20], [1, 11, 15], [1, 11, 16], [1, 11, 18], [1, 11, 19], [1, 11, 20], [1, 12, 15], [1, 12, 16], [1, 12, 18], [1, 12, 19], [1, 12, 20], [1, 13, 15], [1, 13, 16], [1, 13, 18], [1, 13, 19], [1, 13, 20], [3, 8, 15], [3, 8, 16], [3, 8, 18], [3, 8, 19], [3, 8, 20], [3, 10, 15], [3, 10, 16], [3, 10, 18], [3, 10, 19], [3, 10, 20], [3, 11, 15], [3, 11, 16], [3, 11, 18], [3, 11, 19], [3, 11, 20], [3, 12, 15], [3, 12, 16], [3, 12, 18], [3, 12, 19], [3, 12, 20], [3, 13, 15], [3, 13, 16], [3, 13, 18], [3, 13, 19], [3, 13, 20], [4, 8, 15], [4, 8, 16], [4, 8, 18], [4, 8, 19], [4, 8, 20], [4, 10, 15], [4, 10, 16], [4, 10, 18], [4, 10, 19], [4, 10, 20], [4, 11, 15], [4, 11, 16], [4, 11, 18], [4, 11, 19], [4, 11, 20], [4, 12, 15], [4, 12, 16], [4, 12, 18], [4, 12, 19], [4, 12, 20], [4, 13, 15], [4, 13, 16], [4, 13, 18], [4, 13, 19], [4, 13, 20], [5, 8, 15], [5, 8, 16], [5, 8, 18], [5, 8, 19], [5, 8, 20], [5, 10, 15], [5, 10, 16], [5, 10, 18], [5, 10, 19], [5, 10, 20], [5, 11, 15], [5, 11, 16], [5, 11, 18], [5, 11, 19], [5, 11, 20], [5, 12, 15], [5, 12, 16], [5, 12, 18], [5, 12, 19], [5, 12, 20], [5, 13, 15], [5, 13, 16], [5, 13, 18], [5, 13, 19], [5, 13, 20], [6, 8, 15], [6, 8, 16], [6, 8, 18], [6, 8, 19], [6, 8, 20], [6, 10, 15], [6, 10, 16], [6, 10, 18], [6, 10, 19], [6, 10, 20], [6, 11, 15], [6, 11, 16], [6, 11, 18], [6, 11, 19], [6, 11, 20], [6, 12, 15], [6, 12, 16], [6, 12, 18], [6, 12, 19], [6, 12, 20], [6, 13, 15], [6, 13, 16], [6, 13, 18], [6, 13, 19], [6, 13, 20], [7, 8, 15], [7, 8, 16], [7, 8, 18], [7, 8, 19], [7, 8, 20], [7, 10, 15], [7, 10, 16], [7, 10, 18], [7, 10, 19], [7, 10, 20], [7, 11, 15], [7, 11, 16], [7, 11, 18], [7, 11, 19], [7, 11, 20], [7, 12, 15], [7, 12, 16], [7, 12, 18], [7, 12, 19], [7, 12, 20], [7, 13, 15], [7, 13, 16], [7, 13, 18], [7, 13, 19], [7, 13, 20]]
票数 1
EN

Stack Overflow用户

发布于 2020-07-02 05:13:11

尝尝这个

代码语言:javascript
复制
clip1=[1,3,4,5,6,7]
clip2=[8,10,11,12,13]
clip3=[15,16,18,19,20]
cut=[]
for x in clip1:
    for y in clip2:
        for z in clip3:        
            cut.append([x,y,z])
 
print(cut)
print(len(cut))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62684904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档