Python列表字符逻辑操作

一、找出重复数字

import random
def creatls():
    lst = []
    a = int(input('请输入开始区间数:'))
    b = int(input('请输入结束区间数:'))
    c = int(input('请输入列表长度:'))
    print('生成的列表为:')
    for i in range(1,c+1):
        j = random.randint(a,b)
        lst.append(j)
    print(lst)
    return lst

def quchong(lst):
    return list(set(lst))

def findrept():
    list1 = creatls()
    list2 = list1.copy()
    list2 = list(map(str,list2))
    list3 = []
    print('转换成字符的列表为:\n',list2)
    print('重复的元素有:')
    for i in range(0,len(list2)-1):
        if list2.count(list2[i]) >= 2 :
            list3.append(int(list2[i]))
    print(quchong(list3))
            
findrept()

二、10000以内只被5、6两个数字整除的数

def chushu():
    for i in range(1,10001):
        if(i%5==0 and i%6==0):
            i += 1
        if(i % 5 == 0 or i % 6 == 0):
            print(i)
chushu()

三、列表偶数下标之和

import random
def creatls():
    lst = []
    a = int(input('请输入开始区间数:'))
    b = int(input('请输入结束区间数:'))
    c = int(input('请输入列表长度:'))
    print('生成的列表为:')
    for i in range(1,c+1):
        j = random.randint(a,b)
        lst.append(j)
    print(lst)
    return lst

def test():
    list1 = creatls()
    sum = 0
    print('偶数下标之和为:')
    for i in range(0,len(list1)-1):
        if list1[i]%2 == 0:
            sum = sum + i
    return sum

print(test())

四、三种排序函数实现

import random
def creatls():
    lst = []
    a = int(input('请输入开始区间数:'))
    b = int(input('请输入结束区间数:'))
    c = int(input('请输入列表长度:'))
    print('生成的列表为:')
    for i in range(1,c+1):
        j = random.randint(a,b)
        lst.append(j)
    print(lst)
    return lst
ls = creatls()
def bubble_sort(ls):
    seq = ls
    print('冒泡')
    for i in range(len(seq)-1):
        for j in range(len(seq)-i-1):
            if seq[j] > seq[j+1]:  # 相邻两数比较,大数后移
                seq[j], seq[j+1] = seq[j+1], seq[j]
    return seq

def selection_sort(ls):
    seq = ls
    print('选择')
    for i in range(len(seq)-1):
        for j in range(i+1, len(seq)):
            if seq[i] > seq[j]:
                seq[i], seq[j] = seq[j], seq[i]
    return seq

def insert_sort(seq):
    print('插入')
    for i in range(1, len(seq)):
        val = seq[i]
        idx = i
        while val < seq[idx-1] and idx > 0:
            seq[idx], seq[idx-1] = seq[idx-1], val
            idx -= 1
    return seq
print(bubble_sort(ls))
print(selection_sort(ls))
print(insert_sort(ls))

五、分离文件路径、文件名、扩展名

s = "D:\yunjisuan\python\python基础课件资料.zip"
##根据特性切割再组合
ls = s.split("\\")
ls1 = s.split(".")
s1 = ""
s2 = ls[len(ls)-1]
s3 = ls1[len(ls1)-1]
for i in range(0,len(ls)-1):
    s1 += ls[i]+"\\"
print("文件的路径是:{},文件名字是:{},扩展名是:{}".format(s1,s2,s3))
##使用切片方式
s = "D:\yunjisuan\python\python基础课件资料.zip"
s2 = s[0:s.rfind("\\")+1]
s3 = s[s.rfind("\\")+1:]
s4 = s[s.rfind(".")+1:]
print("文件的路径是:{},文件名字是:{},扩展名是:{}".format(s2,s3,s4))

六、统计中文字数

s = input("请输入判断的字符串:")
##利用编码范围判断!
count = 0
for i in s:
    if 0x4E00 <= ord(i) <= 0x9FA5:
        count += 1
print(count)

七、将字符全部转化为大写或小写

s = input("请输入字符串:")
print("该字符串字母全部转为大写是:",s.upper())
print("该字符串字母全部转为小写是:",s.lower())

八、根据标点符号对字符串进行分行

s = input("输入")
for i in range(0 ,len(s)):
    if s[i] == "."or s[i] =="," or s[i]=="!" or s[i]==";":
        print("")
    else:
        print(s[i],end = "")

九、去掉字符串数组中每个字符串的空格

ls = ["adak dkad ","alkdwak  adla  ","adak   adlaw "]
ls1 = []
for i in range(0,len(ls)):
    ls1.append(ls[i].replace(" ",""))

print(ls1)

十、输出字符串长度

s = input("你喜欢的书名:")
print("{}的书名长度是{}".format(s,len(s)))

十一、条件判断并输出

s1 = input("你喜欢的游戏名字:")
s2 = input("他最喜欢的游戏名字:")
if s1 == s2:
    print("你们最喜欢的游戏是:{}".format(s1))
else:
    print("你最喜欢的游戏是:{}".format(s1))
    print("他最喜欢的游戏是:{}".format(s2))

十二、大小写代表相同信息处理

s1 = input("你喜欢的游戏名字:")
s2 = input("他最喜欢的游戏名字:")
s1 = s1.upper()
s2 = s2.upper()
if s1 == s2:
    print("你们最喜欢的游戏是:{}".format(s1))
else:
    print("你最喜欢的游戏是:{}".format(s1))
    print("他最喜欢的游戏是:{}".format(s2))

十三、日期格式转换

s = input("请输入日期,格式如2008/02/02:")
ls = s.split("/")
print("转换后的日期格式:{}年{}月{}日".format(ls[0],ls[1],ls[2]))

十四、字符排序后逆序输出

s = input("请输入字符串")
ls = list(s)
ls.sort()
ls.reverse()
s = ""
for i in range(0,len(ls)):
    s += ls[i]
print(s)

十五、部分字符逆序输出

s = input("请输入字符串:")
ls = s.split(" ")
ls.reverse()
s = ""
for i in range(0,len(ls)) :
    s +=ls[i] + " " 
print(s)

十六、提取特定字符

s = "http://www.163.com?userName=admin&pwd=123456"
ls = s.split("/")
s1 = ls[2]
ls2 = s1.split("?")
print("域名是:{}".format(ls2[0]))
s1 = ls2[1]
ls3 = s1.split("&")
s1 = ls3[0]
ls4 = s1.split("=")
print("用户名是:{}".format(ls4[1]))
##用分割方法。
print("域名是:{},用户名是:{}".format(s[s.rfind("/")+1:s.find("?")],s[s.find("=")+1:s.find("&")]))

十七、简化字符串输出

ls = ["我的世界冲冲冲啊冲啊啊","遥远的老天爷","红尘往市不在回首嘿嘿黑","活着","白鹿原之青青草原112"] ##10个书名太多了,我只存了几个
dir = {"我的世界冲冲冲啊冲啊啊":"xuhaoo","遥远的老天爷":"haoboxu","红尘往市不在回首嘿嘿黑":"xuahobo","活着":"haobo","白鹿原之青青草原112":"hahah"} 
for i in range(0,len(ls)):
    s = ls[i]
    if len(s) > 10:
        s = s[0:9]+"..._"+str(dir[ls[i]])
    ls[i] = s
print(ls)

十八、找出所有特定字符位置

s = input("请输入一段话!")
ls = []
for i in range(0,len(s)):
    if s[i] == "呵":
        ls.append(i)

print("呵的位置是:{}".format(ls))  

十九、找出所有特定字符串位置

s = input("请输入一段话!")
ls = []
for i in range(0,len(s)-1):
    if s[i] == "呵" and s[i+1] =="呵":
        ls.append(i)

print("呵呵的位置是:{}".format(ls))  
##也可以直接index(“呵呵”)

二十、字符替换

s = input("请输入字符串:")
print("邪恶消失后:{}".format(s.replace("邪恶","**")))

二十一、判断一个字符串是否为另一个字符串的子串

s = input("请输入字符串A:")
s1 = input("请输入需要判断的字符串B:")
flag = True
if s.find(s1) != -1:
    flag = False
if flag:
    print("字符串B{}不在A{}内".format(s1,s))
else:
     print("字符串B{}在A{}内".format(s1,s))

二十二、验证一个字符串中的每一个字符均在另一个字符串中出现过

s = input("请输入字符串A:")
s1 = input("请输入需要判断的字符串B:")
flag = True
for i in range(0,len(s1)):
    if s.find(s1[i]) == -1:
        flag = False
if flag:
    print("字符串B{}的所有元素在A{}内".format(s1,s))
else:
    print("字符串B{}不是所有元素都在A{}内".format(s1,s))

二十三、随机生成无数字的全字母的字符串

import string
import random
s = string.ascii_letters
s1 = ""
for i in range(1,20):
    s1 += random.choice(s)
print(s1)

二十四、随机生成带数字和字母的字符串

import string
import random
s = string.ascii_letters + string.digits  ##前为生成字母,后为生成数字
s1 = ""
for i in range(1,20):
    s1 += random.choice(s)
print(s1)


二十五、判定一个字符串中既有数字又有字母

import string
s = input("输入需要判断的字符串:")
if (s.isalnum()and not s.isalpha()) and not s.isdigit():
    print("字符串{}里包含数字和字母".format(s))
else:
    print("字符串{}里并不是既包含字母又包含数字".format(s))

二十六、字符串内的字符排序(只按字母序不论大小写)

s  = input("请输入字符串")
s1 = s.upper()
ls = list(s1)
ls.sort()
s2  = ""
for i in range(0,len(ls)):
    s2 += ls[i]
print(s2)

二十七、判断一个字符串是否是回文字符串(面试题)

def is_palindrome_1(tmp_str):
    for i in range(len(tmp_str)):
        if tmp_str[i] != tmp_str[-(i+1)]:
            return False
    return True
print(is_palindrome_1('123321'))
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值