'''1 使用for循环生成一个二维列表,[[1,2,3],[4,5,6],[7,8,9]]'''
#方法一:
result_list = []
for i in range(1,10,3):
result_list.append([i,i+1,i+2])
print(result_list)
#方法二:推导列表
print([[i,i+1,i+2] for i in range(1,10,3) ])
#方法三:先生成二维列表,再在每个位置分别赋值
##aList = [[1]*3]*3 #这种方法有问题,相当于列表引用复制,修改一个所有都影响
aList= []
for i in range(3):
aList.append([1]*3)
for i in range(1,10):
aList[(i-1)//3][(i-1)%3]= i
print(aList)
'''2 将列表中[[1,2,3],[4,5,6],[7,8,9]]的所有奇数进行求和'''
result = 0
a = [[1,2,3],[4,5,6],[7,8,9]]
for l in a:
for i in l :
if i%2!=0:
result +=i
print(result)
'''3 {1:'a',2:"b",3:'c'},将所有key的数字求和,将value的所有字符串拼接为一个字符串'''
result = 0
s = ''
d = {1:'a',2:"b",3:'c'}
for k,v in d.items():
result +=k
s +=v
print('key中数字之和为:',result)
print('value字符串拼接为:',s)
'''4 {1:'a',2:"b",3:'c'}将key和value进行交换,生成一个新字典'''
d = {1:'a',2:"b",3:'c'}
#方法一:
print({d[x]:x for x in d.keys()})
#方法二:items()
new_dict = {}
for k,v in d.items():
new_dict[v] = k
print (new_dict)
#方法三:setdefault()
new_dict = {}
for k ,v in d.items():
new_dict.setdefault(v,k)
print (new_dict)
'''5 把[1,2,3,4,5,6]转换为字典{1:2,3:4,5:6}'''
a = [1,2,3,4,5,6]
d ={}
for i in range(0,len(a),2):
d[a[i]] = a[i+1]
print(d)
'''6 生成随机的10个整数,进行求和 '''
import random
result =0
for i in range(10):
result +=random.randint(0,100)
print(result)
'''7 [1,"a",2,"b",3,"c"]请将里面的所有数字保留,去掉所有字母'''
a = [1,"a",2,"b",3,"c"]
#方法一:遍历
new_a =[]
for i in a:
if not isinstance(i,str):
new_a.append(i)
print(new_a)
#方法二:filter
print(list(filter(lambda x: not isinstance(x,str),a)))
'''8 "8426"变为"4213"'''
s = "8426"
new_s =''
for i in s:
new_s+= str(int(i)//2)
print(new_s)
'''9 写一个函数输入一个字符串,判断是否包含既不是数字也不是字母也不是_的字符,只要包含一个就返回false'''
#方法一:
def has_special_symbal(s):
if not isinstance(s,str):#判断异常
return false
for i in s:
if not( i.isalnum() or i== '_'):
return False
return True
#方法二:正则
def has_special_symbal_2(s):
import re
if not isinstance(s,str):#判断异常
return false
m = re.match(r'^\w+$',s)
if m and m.group() == s:
return True
return False
print (has_special_symbal('abjdejw_12'))
print (has_special_symbal(' '))
print (has_special_symbal('2*3==6?'))
print (has_special_symbal_2('abjdejw_12'))
print (has_special_symbal_2('it is a nice day!!'))
print (has_special_symbal_2('2*3==6?'))
'''10 将['a','b','M','N'],将所有小写字母变为大写字母,大写字母变为小写字母["A","B","m","n"]'''
a = ['a','b','M','N']
#方法一:chr+ord
b =[]
for i in a:
if i >='a' and i<='z':
b.append(chr(ord(i)-32))
elif i >='A' and i<='Z':
b.append(chr(ord(i)+32))
print(b)
#方法二:lower()+upper()
b =[]
for i in a:
if i >='a' and i<='z':
b.append(i.upper())
elif i >='A' and i<='Z':
b.append(i.lower())
print(b)
#方法三:swapcase()
print([i.swapcase() for i in a])