① 怎么对python中列表类型进行分组
如下,将不同的类型及值放到字典中
例如列表lst有int,list,tuple,dict,str,float等类型。
lst = [1,2,3,'54',45.0,'784','string',[1,2,3],(3,6,7),{"no1":1,"no2":2}]
#定义dict_lstype,来对列表lst进行分组
dict_lstype={}
for i in lst:
type_i = type(i)
#如果i的类型在字典中已经存在,则进行追加;如果不存在,则新增一个类型的列表
if type_i in dict_lstype:
dict_lstype[type_i].append(i)
else:
dict_lstype[type_i] = [i]
print dict_lstype
② python把一个数字列表转化为一个数字
解决办法有三种:
1、用join()函数,但我发现使用join函数要求列表中的元素都是字符串,所以需要将列表中的元素都转换为字符串。
a = [1,2,3,4,5]
a = [str(i) for i in a]
b = int(''.join(a))
print(b)
2、用sum()函数求和,那就需要对每个元素的十分位和百分位或者千分位进行转换
a = [1,2,3,4,5]
a = [i *10**index for index,i in enumerate(a[::-1])]
b = sum(a)
print(b)
3、直接将列表转换为字符串,然后去除[],,另外还要去除空格
a = [1,2,3,4,5]
b = str(a).replace("[","").replace("]","").replace(",","").replace(" ","")
print(int(b))
(2)python把列表分为指定数量扩展阅读
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
返回值:返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成的。
例子:
在本例中,将创建一个数组,然后把它的所有元素放入一个字符串:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())
</script>
输出:
George,John,Thomas
③ python怎么将列表中元素分配成三份(无需连续),列举出所有的方案
挡板+枚举法如何
比如5个元素分成3份,实际上就是从4个空隙里面选两个插进去板子就行了
对于x各元素,也就是对1~x-1进行枚举两个数i和j(i!=j)二重循环搞定
取的时候用列表切片就好
比如l1=l[:i], l2=l[i:j], l3=l[j:]酱紫
④ python里如何把一个list分成两个
思考,用正则表达式,把字符串里的数字提前出来. 数字排序之后,如果第一个和最后一个相等,那么数字部分就完全相等
参考代码
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#python2.7
importre
deffunc(li):
nums=[]
forsinli:
s=re.findall(r'D*(d+)D*',s)
nums.append(int(s[0]))
printnums
#排序
nums.sort()
#如果排序后,第一个和最后一个相等,那么就完全相等
ifnums[0]==nums[-1]:
printTrue,"数字完全相等"
else:
printFalse,"数字不全部相等"
test1=['2C','2S','2H']
test2=['A3C','D2S','C2H']
func(test1)
func(test2)
测试
[2,2,2]
True数字完全相等
[3,2,2]
False数字不全部相等
⑤ python列表中如何做到一个列表分割成多个列表
def groups(L1,len1):
groups=zip(*(iter(L1),)*len1)
L2=[list(i) for i in groups]
n=len(L1) % len1
L2.append(L1[-n:]) if n !=0 else L2
return L2
L1=[23,26,8,9, 'AB', 'CDEF']
print(groups(L1,3)