1、元组与list相互转换:
A、元组转list
tmp1=(9,33);
list1=list(tmp1);
print(list1);
备注:如上代码会在报"'list' object is not callable",原因可能是没做转换之前list存在默认赋值,覆盖了list本身,导致报错(解释比较牵强,没有找到更合理的解释);在报错语句前加上"del list",报错问题解决
B、list转元组
list2=[48,'r'];
tu=tuple(list2);
print(tu);
执行结果:(48, 'r')
2、集合相关操作
A、添加元素:
a、add:添加元素已存在,不做任何操作;否则执行新增操作;且仅支持单个元素添加(字符串、数字、bool)等
aa=set(('test','yry','test','hello','test'));
aa.add('hello world!');
aa.add('test');
print(aa);
执行结果:{'hello', 'test', 'yry', 'hello world!'}
b、update:可添加字符串(插入数字、字符串等会报错——‘xx’ object is not iterable)、列表、字典、元组、集合的去重插入;其中执行字符串插入时,字符串会被分解成一个个非重复的字符;字典只有key会被插入
bb={'yu',99,'hdhh',True,99};
bb.update("hell");
bb.update([5,9]);
bb.update({'name':'xiao','yu':'iu'});
bb.update((43,88));
bb.update({90,False,'yu'});
print(bb);
执行结果:{False, True, 99, 5, 'e', 9, 'yu', 43, 'l', 'h', 'hdhh', 'name', 90, 88}
B、取差集:
a、difference: 多个集合取差集,不会影响集合本身的结果;且可以通过新变量存储集合数据
a={'a','b','c'}; b={'c','d','e'};
c=a.difference(b);
print(c); print(a); print(b);
执行结果:
{'b', 'a'} {'b', 'c', 'a'} {'c', 'd', 'e'}
b、difference_update:多个集合取差集,会影响集合本身——difference_update之前的集合,多个集合中重复部分被移除;difference_update之后的集合则不会发生改变。且此种方式不会返回新的集合(新变量存值返回None)
a={'a','b','c'}; b={'c','d','e'};
d=a.difference_update(b);
print(d); print(a); print(b);
执行结果:None {'a', 'b'} {'e', 'c', 'd'}
3、数据字典:
dic={'aa':1,'bb':'yy','cc':False};
dipdic={'test':44,"gg":{}}
s=' s@d@o'
for i in s.split('@'):
dic['aa']=i;
d = {};
d[str(i)] = dic;
dipdic["gg"].update(d);
print(dipdic);
执行结果:
{'test': 44, 'gg': {' s': {'aa': 'o', 'bb': 'yy', 'cc': False}, 'd': {'aa': 'o', 'bb': 'yy', 'cc': False}, 'o': {'aa': 'o', 'bb': 'yy', 'cc': False}}}
分析:出现重复数据原因——dic作为定义在循环外的全局变量,虽然在循环内对其中元素做了赋不同值的处理,但实际dic最终只会保持最后一次的操作;若在dic作为循环内的局部变量,则不会出现重复情况
修改后:
dipdic={'test':44,"gg":{}}
s=' s@d@o'
for i in s.split('@'):
dic = {'aa': 1, 'bb': 'yy', 'cc': False};
dic['aa']=i;
d = {};
d[str(i)] = dic;
dipdic["gg"].update(d);
print(dipdic)
执行结果:
{'test': 44, 'gg': {' s': {'aa': ' s', 'bb': 'yy', 'cc': False}, 'd': {'aa': 'd', 'bb': 'yy', 'cc': False}, 'o': {'aa': 'o', 'bb': 'yy', 'cc': False}}}
4、循环语句:
A、实现输出杨辉三角:
n=7;
temp1=[1,1];#全局变量,用于暂存每一行的数据
for i in range(1, n+1):#python左闭右开,想要实现打印7行,最大边界需加1
if i<2:
print(1);
elif i < 3:
print(1, end=" ");
print(1);
else:
temp2=[];#临时变量,用于暂存每一行除了1之外的值
for j in range(0,len(temp1)-1):
temp2.append(temp1[j]+temp1[j+1]);#拼接上一行除1之外相邻数据之和
temp1=[1]+temp2+[1];
for x in temp1:
print(x,end=" ");#实现每一行数据带空格输出
print();#换行
执行结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1