Python编程使用*解包和itertools.product()求笛卡尔积的方法
本篇章节讲解Python编程使用*解包和 【问题】 目前有一字符串 list1 = ['a','b'] list2 = ['c','d'] 之后使用 for i in itertools.product(list1,list2): print i 结果为: ('a','c') ('a','d') ('b','c') ('b','d') 然而使用eval(s)获得的是一个元组。product的参数如果是元组则一定会报错(product的参数是两个列表,每个列表中的元素数量不定)。怎么破? 【解答】 其实只差一个*而已。*是python中一个赋值的技巧,叫做解包。相信很多人都见过 例如,在这道题中,就可以写成: for i in itertools.product(*eval(s)): print i 就可以出来结果了。 这个问题用到的三个技巧: (1) (2) (3)*解包。上面已经解释过了,其实用到的场合感觉挺有限的,有印象即可,能在无路可走的时候灵光一现就好,别太指望它给你的程序带来多大好处。 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》 希望本文所述对大家Python程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |