练习题

.将0到10中的偶数拼接成一个字符串输出

例如输出02468

a = [str(i) for i in range(0,10) if i%2==0]
print(''.join(a))

结果

02468

 

.有字符串:abc,,11dab,找出重复的字母或者数字,并统计重复次数

a重复2次;b重复2次;1重复2次

1.先去掉特殊字符,用filter函数去掉特殊字符

list(filter(str.isalnum,s))

2.再用set函数生成一个新的list,去掉重复的字母或者数字

set(list(filter(str.isalnum,s)))

3.找出重复的字母或者数字,用count函数统计字母或者数据出现的次数,超过1次就是重复出现

完整代码:

s = "abc,,11dab"

a1 = list(filter(str.isalnum,s))

b = set(a1)

for i in b:
    if a1.count(i) > 1:
        print("字符:%s,重复次数:%s"%(i,a1.count(i)))

输出结果:

字符:b,重复次数:2
字符:a,重复次数:2
字符:1,重复次数:2

 

实现2:

s = "abc,,11dab"

a1 = list(filter(str.isalnum,s))

b = set(a1)

c = {}
for i in b:
    if a1.count(i) > 1:
        c[i] = a1.count(i)
print(c)

输出结果:

{'1': 2, 'b': 2, 'a': 2}

 

三.字符串:abbacd,找出不重复的第一个字符

输出c

1.生成一个没有重复元素新的list,并且保持生成的list顺序不变

如果用set函数生成的新的list每次的顺序都是变化的,不利于我们实现找出不重复的第一个字符

使用如下方法保证新生成的list顺序与字符串顺序一致

s = "abbacd"

b = list(s)
b1 = list(set(b))
b1.sort(key=b.index)
print(b1)

输出结果:

['a', 'b', 'c', 'd']

2.再根据新生成的list去字符串s中统计每个元素重复的次数,找到第一个不重读的字符,打印出元素

代码如下:

s = "abbacd"

b = list(s)
b1 = list(set(b))
b1.sort(key=b.index)
print(b1)

c = {}
for i in b1:
    if s.count(i) == 1:
        c[i] = s.count(i)
        break

for j in c.keys(): print(j)

输出结果:c

 

四.整型数组排序   1,2,23,44,51   最后得到11223445

思路:将整型数组转换成字符串,再将字符串转换成数组,最后对数组进行排序

1.将整型数组转换成字符串

L1 = [1,2,23,44,51]

a = ''.join(map(str,L1))

2.将字符串转换成数组

L2 = list(a)

3.对数组进行排序

L2.sort()
s = ''.join(L2)
print(s)

输出:11223445

 

五.如何获取list中最后一个元素

答案:list[-1]

 

六.读取文件,每一行有一个字段为数字,按数字大小排序,输出整个文档

wj.txt

1amndjkakkd,ksdllsksdf
sdlkslsd2222lslkdlsfkssds
sdkl,456sdlksdlkfslfkdlsk
sfsdfsfdsfdsfdsfdsdsf78

实现代码:

import re

L = []
for line in open("wj.txt","r").readlines():
    # print(line.strip("\n"))
    m = re.findall(r'\d+',line.strip("\n"))
    # print(m[0])
    L.append(int(m[0]))
L.sort()
for i in L:
    for j in open("wj.txt","r").readlines():
        if str(i) in j:
            with open("wj1.txt","a") as f:
                f.write(j+'\n')

结果:

1amndjkakkd,ksdllsksdf

sfsdfsfdsfdsfdsfdsdsf78
sdkl,456sdlksdlkfslfkdlsk

sdlkslsd2222lslkdlsfkssds

 

posted @ 2017-10-27 16:56  悠然现南山  阅读(203)  评论(0编辑  收藏  举报