0222第五天,集合,i for i in range的应用

# 第一个元素和第二个元素交换位置,第三个和第四个交换,第五个和第六个交换,依次下去,单剩一个动
a=[1,2,3,4,5,6,7,8,9]
i=0
while(i<len(a)-1): # 不减1,奇数个元素时,i+1产生不存在的下标
    a[i],a[i+1]=a[i+1],a[i]
    i+=2
print(a)

a=[1,2,3,4,5,6,7,8,9]
i=1
while(i<len(a)):
    a[i-1],a[i]=a[i],a[i-1]
    i+=2
print(a)

a=[1,2,3,4,5,6,7,8,9,10]
i=0
while i<len(a)-1:
    a[i],a[i+1]=a[i+1],a[i]
    i+=2
print(a)

a=[1,2,3,4,5,6,7,8,9,10]
i=1
while i<len(a):
    a[i-1],a[i]=a[i],a[i-1]
    i+=2
print(a)

将字符串打印成三角形,只用一层循环
a=input("请输入一个字符串")
hang=1
count=0
i=0
while i<len(a):
    print(a[i],end=' ')
    if count==hang:
        print()
        count=0
        hang+=1
    count += 1
    i += 1

a=input("请输入任何一个字符串:")
hang=1
count=0
for i in range(len(a)):
    if count==hang:
        print()
        hang+=1
        count=0
    print(a[i],end=' ')
    count+=1

a=input("请输入任何一个字符串:")
hang=1
count=0
i=0
while i<len(a):

    if count==hang:
        print()
        hang+=1
        count=0
    print(a[i],end=' ')
    count+=1
    i += 1

a=input("请输入任何一个字符串:")
hang=1
count=0
for i in range(len(a)):
    if count==hang:
        hang+=1
        count=0
        print()
    print(a[i],end=' ')
    count+=1

a=input("请输入任何一个字符串:")
hang=1
count=0
i=0
while i<len(a):
    if count==hang:
        print()
        hang+=1
        count=0
    print(a[i],end=' ')
    count+=1
    i+=1

a=input("请输入任何一个字符串:")
j=1
i=0
while i<len(a):
    print(a[i:i+j])
    j+=1
    i+=j

a=[3,3,42,224,2]
b=set(a)
print(b)
a=(2,4,5,3,3,4)
b=set(a) # 集合的元素不重复,集合,无序,没有下标,不重复
print(b)
a='3242332'
b=set(a)
print(b)
a=dict(name='zhang',age=10)
b={'身高':111,'体重':222}
c=set(a)
d=set(b)
print(c,d) # 字典转换成集合后,只剩键keys,没有值values


a={}
print(a,type(a)) # 空字典,a=set()才是空集合

a=set((3,34,5,4)) # 元组转集合
a=set(3,34,5,4) #报错,set里面只能有一个值

# add和update
a={1,2,3}
a.add('abc') # abc作为一个元素,集合能够增删改
print(a)
a={1,2,3}
a.update('abc') # a b c作为3个元素
print(a)

a={1,2,3}
print(a.pop()) # 随机删除一个,集合无序,

a={2,3,'r',3,8}
print(a)
a.remove(0) # a 集合中找不到0,remove报错
a.discard(1) # a 集合中找不到1,不报错,而是返回None
print(a.discard(4))

a={1,2,4}
b={'r','e','s'}
c=a.union(b) # 把a b 放到一起,无序。 同时不改变a,b 。与列表的extend不同
print(c)
print(a)
print(b)

a=[1,2,4]
b=['r','e','s']
a.extend(b) # a 的值被改变
print(a)

a={12,3,4,5}
b={4,5,6,7,8}
c=a.intersection(b) # 返回交集 4,5
print(c)
print(a.difference(b))  # 返回 a有,b没有的集合 3,12
print(a.symmetric_difference(b)) # 返回 a和b里  不同时在ab里的。3,6,7,8,12

a={1,2,3}
b={4,5,6,1,2}
c={1,2,3,4}
print(c.issuperset(a))  # c是不是a的父集。True
print(c.issuperset(b))  # False
print(a.issubset(c)) # a是不是c的子集 True
print(a.issubset(b)) # False
print(a.isdisjoint(b)) # 看是不是 没有交集 False

a={1,2,3}
b={1,2,4,5,6}
d={1,2,3}
c=a-b # 从a里面减去 ab都有的部分
print(c)
c=a|b # 或
print(c)
c=a&b # 与
print(c)
print(4 in a) #False
print(3 in a) # True
print(a!=b)# True
print(a==b)

# 以下,在声明列表的中括号中,用 i for i in range()
a=[i for i in range(10)]
print(a) # [0,1,2,3,4,5,6,7,8,9]
a=[i for i in range(3,10,2)] #3,5,7,9
a=[i for i in range(10) if i%2==0] # 偶数
a=[i for i in range(0,20,1) if(i%5==0 or i%7==0)]  # 被5整除,或被7整除的数。 0,5,7,10,14,15,

a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[i][1] for i in range(len(a))] # [2,5,8]
print(b)
b=[a[i][i] for i in range(len(a))] # [1,5,9]
print(b)
b=[a[i][len(a)-1-i] for i in range(len(a))] #[3,5,7]
print(b)

a=[[2*j+1+i for i in range(3)] for j in range(3)]  # j为行,i为列, 2*j+1+i是对应的值。即a[j][i]= 2*j+1+i
print(a)
# 1 2 3
# 3 4 5
# 5 6 7

# 对字典用 i for i in a
a={1:20,3:40,5:60}
b={v:k for k,v in a.items()} # 交换 键 和 值
print(b)

a={'a':30,"b":4,"A":20,"B":22,'c':21}
b={k.lower():(a.get(k.lower(),0)+a.get(k.upper(),0)) for k in a.keys()} # 从  for k in a.keys()  中的k 开始
print(b)
"""
# 遍历
a='123'
for data in a:
    print(data)

a=['zhangsan',2,(3,4)]
for data in a:
    print(data)

a={'name':'张三','age':29,"address":"中公"}
for x in a:
    print(x)  #只能打印出键,没有值。就像把字典转成集合后 打印集合

# 枚举
a='sdjiefj'
for xiabiao,value in enumerate(a):
    print(xiabiao,value)

#判断列表中每个元素重复的次数。利用 列表转集合 去除重复项。
a=[2,5,7,3,8,5,3,2,2]
b=set(a)
for i in b:
    print(i,"重复的次数",a.count(i))

猜你喜欢

转载自blog.csdn.net/weixin_44675370/article/details/87888186
I