python容器型数据的函数方法实现

list 的相关方法(append,clear,copy,count,extend,index,insert,pop,remove,reverse,sort)

list.append(item) - 在末尾添加指定元素

list1 = [1,2,3,4]
item = 5
new_list1 = list1 + [item]
print(new_list1)

list.clear() - 清空列表

list2 = [1,2,3,4]
list2 = []
print(list2)

list.copy() - 产生一个一模一样的新列表

list3 = [1,2,3,4]
new_list3 = []
for item in list3:
    new_list3 += [item]
print(new_list3)

list.count(item) - 获取指定元素在列表中的个数

list4 = [1,1,2,1,3,4,3,4]
count = 0
item = 1
for i in list4:
    if i == item:
        count+=1
print(item,"在list4中出现的次数为",count)

list.extend(序列) - 在列表后面添加一个序列

list5 = [1,2,3]
list6 = [4,5,6]
for item in list6:
    list5+=[item]
print(list5)

list.index(item) - 获取指定元素在列表中第一次出现的下标,元素不存在报错

list7 = [5,1,3,4,3]
count = 0
item = 3
for i in list7:
    if i == item:
        print(count)
        break
    count += 1
else:
    print("错误警告,元素不在列表中")

list.insert(index,item) - 列表指定位置插入指定元素,位置超过列表长度会在末尾追加

list8 = [1,2,3,4]
index = 2
item = 5
list8 = list8[:index] + [item] + list8[index:]
print(list8)

list.pop(index) - 取出列表指定位置的元素,如果不使用则没有意义,相当于删除操作

如果没有index,默认为列表的最后一个元素

list9 = [1,2,3,4]
index = 2
aa = list9[index]
list9 = list9[:index] + list9[index+1:]
print(list9)

list.remove(item) - 删除指定元素在列表中出现的第一个,如果元素不存在会报错

list10 = [1,2,3,4]
item = 3
count = 0
for i in list10:
    if i == item:
        list10 = list10[:count] + list10[count + 1:]
        print(list10)
        break
    count += 1
else:
    print("错误警告,元素不在列表中")

list.reverse() - 将整个列表翻转

list11 = [1,2,3,4]
list11 = list11[::-1]
print(list11)

list.sort() - 对整个列表进行升序排序

list12 = [1,3,4,2,1,5,6]
count = len(list12)
for i in range(count):
    for j in range(i + 1, count):
        if list12[i] > list12[j]:
            list12[i], list12[j] = list12[j], list12[i]
print(list12)

dict 相关方法 (clear,copy,get,items,keys,setdefault,update,values,pop,popitem)

dict.clear() - 清空整个字典

dict1 = {'a':10,'b':20,'c':30}
dict1 = {}
print(dict1)

dict.copy() - 产生一个一模一样的新字典

dict2 = {'a':10,'b':20,'c':30}
new_dict2 = {}
for key in dict2:
    new_dict2[key] = dict2[key]
print(new_dict2)

dict.get(key,default=None) - 获取指定键的的值,如果键不存在默认返回None,可以在逗号后面输入指定返回值

dict3 = {'a':10,'b':20,'c':30}
key1 = 'c'
for key in dict3:
    if key == key1:
        print(dict3[key1])
        break
else:
    print(None)

dict.items() - 以列表返回一个视图对象,列表中每一个元素对应字典每一个键值对

dict3 = {'a':10,'b':20,'c':30}
list1 = []
for key in dict3:
    list1.append((key,dict3[key]))
print(list1)

dict.keys() - 以列表返回一个视图对象,列表中每一个元素对应字典每一个键

dict4 = {'a':10,'b':20,'c':30}
list1 = []
for key in dict4:
    list1.append(key)
print(list1)

dict.setdefault(key, default=None) - 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

dict5 = {'a':10,'b':20,'c':30}
key1 = 'd'
for key in dict5:
    if key == key1:
        print(dict5[key1])
        break
else:
    dict5[key1] = None
    print(dict5)

dict.update(dict2) - 把字典dict2的键/值对更新到dict里 - 键相同修改值,键不存在添加键值对

dict6 = {'a':10,'b':20,'c':30}
dict7 = {'d':40,'c':20}
for key in dict7:
    dict6[key] = dict7[key]
print(dict6)

dict.values()

dict8 = {'a':10,'b':20,'c':30}
list1 = []
for key in dict8:
    list1.append(dict8[key])
print(list1)

dict.pop(key) - 删除字典给定键所对应的值,返回值为被删除的值。键值必须给出,键不存在则报错

dict9 = {'a':10,'b':20,'c':30}
key1 = 'b'
new_dict9 = {}
count = 0
for key in dict9:
    if key == key1:
        return_value = dict9[key1]
        count+=1
        continue
    else:
        new_dict9[key] = dict9[key]
if count != 0:
    print(new_dict9)
else:
    print("错误警告,键不存在")

dict.popitem() - 删除字典中的最后一对键和值。

dict9 = {'a':10,'b':20,'c':30}
len_dict9 = len(dict9)-1
new_dict9 = {}
for key in dict9:
    new_dict9[key] = dict9[key]
    len_dict9-=1
    if len_dict9 ==0:
        break
print(new_dict9)

tuple 相关方法 (count,index)

tuple.count(item) - 统计指定元素在元组中的个数

tuple1 = (1,2,2,3,4)
item = 2
count1 = 0
for i in tuple1:
    if i == item:
        count1+=1
print(count1)

tuple.index(item) - 获取指定元素在元组中的下标,元素不存在会报错

tuple2 = (1,2,3,4,5,2,4)
item = 4
index1 = 0
for i in tuple2:
    if item == i:
        print("元素的下标是:", index1)
        break
    index1+=1
else:
    print("错误警告,元素不在元组中")

set 方法 (add,clear,copy,difference,difference_update,discradintersection,intersection_update,isdisjoint,issubset,issuperset,pop,remove,union,update,symmetric_differencesymmetric_difference_update)

set.add(元素) - 集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。

set1 = {4,2,5,7}
item = 8
set1 = set1 | {item}
print(set1)

set.update() - 修改当前集合,可以添加新的元素或集合到当前集合中,

##如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

set1 = {4,2,5,7}
item = 8
set1 = set1 | {item}
print(set1)

add()只可以添加不可变的元素,如数字,字符串,元组,否则报错;

而update()可以添加字符串、列表、元组、字典等可迭代的元素,若添加数字类型会报错。

add()把元素整体性的添加进去,update()会把元素拆分再添加进去。

set.clear() - 移除集合中的所有元素。

set2 = {1,2,3,4}
set2 = set2 & set()
print(set2)

set.copy() - 产生一个一模一样的新集合

set3 = {5,6,7,8}
set4 = set()
for item in set3:
    set4 = set4 | {item}
print(set4)

set.difference(set) - 返回的集合元素包含在第一个集合中,但不包含在第二个集合中

set5 = {1,2,3,4,5,6,7}
set6 = {5,6,7,8,9,10,11}
set7 = set5-set6
print(set5,set6,set7)

set.difference_update(set)

set5 = {1,2,3,4,5,6,7}
set6 = {5,6,7,8,9,10,11}
for item in set6:
    set5 -= {item}
print(set5)

difference_update() 方法与 difference() 方法的区别在于

difference() 方法返回一个移除相同元素的新集合,

而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。

set.discard(value) - 移除指定的集合元素。元素不存在时不会报错

set7 = {1,2,3,4,5}
item = 4
for i in set7:
    if i == item:
        set7 -= {item}
        break
print(set7)

set.remove(value) - 移除指定的集合元素。元素不存在时会报错

set7 = {1,2,3,4,5}
item = 5
if item in set7:
    for i in set7:
        if i == item:
            set7 -= {item}
            print(set7)
            break
else:
    print("报错,元素不存在集合中")

set.intersection(set1) - 用于返回两个或更多集合中都包含的元素,即交集。

set5 = {1,2,3,4,5,6,7}
set6 = {5,6,7,8,9,10,11}
set7 = set5 & set6
print(set7)

set.intersection_update() - 用于获取两个或更多集合中都重叠的元素,即计算交集

set5 = {1,2,3,4,5,6,7}
set6 = {5,6,7,8,9,10,11}
set5 &= set6
print(set5)

intersection_update() 方法不同于 intersection() 方法,

因为 intersection()方法是返回一个新的集合,

而intersection_update() 方法是在原始的集合上移除不重叠的元素。

set.isdisjoint() - 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

set5 = {1,2,3,4}
set6 = {5,6,7,8,9,10,11}
count = 0
for item in set5:
    if item in set6:
        count+=1
if count != 0:
    print(True)
else:
    print(False)

set.issubset() 判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False

set5 = {5,6,7,8}
set6 = {5,6,7,8,9,10,11}
flag = True
for item in set5:
    if item not in set6:
        flag = False
        break
print(flag)

set.issuperset(set) 判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。

set5 = {5,6,7,8}
set6 = {5,6,7,8,9,10,11}
flag = True
for item in set5:
    if item not in set6:
        flag = False
        break
print(flag)

set.symmetric_difference() - 返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。

set5 = {1,2,3,4,5,6,7,8}
set6 = {5,6,7,8,9,10,11}
set7 = (set5 | set6) - (set5 & set6)
print(set7)

set.symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

set5 = {1,2,3,4,5,6,7,8}
set6 = {5,6,7,8,9,10,11}
set5 = (set5 | set6) - (set5 & set6)
print(set5)

set.union() - 返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

set5 = {1,2,3,4,5,6,7,8}
set6 = {5,6,7,8,9,10,11}
set7 = set5 | set6
print(set7)

str 的相关方法

str.capitalize() - 将字符串的第一个字母变成大写,其他字母变小写。

str1 = 'wfxMYdfewe'
new_str1 = ''
if 'a' <= str1[0] <= 'z':
    new_str1 += chr(ord(str1[0]) - 32)
for index in range(1,len(str1)):
    if 'A' <= str1[index] <= 'Z':
        new_str1 += chr(ord(str1[index]) + 32)
    else:
        new_str1 += str1[index]
print(new_str1)

str.center(width,fillchar) - 指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

str2 = 'abcd'
new_str2 = ''
width = 6
if len(str2) >= width:
    new_str2 +=str2
else:                             ### 下面出现的'+'为填充字符可以自定义,默认空格
    if (width - len(str2)) % 2:
        new_str2 = '+' * ((width - len(str2)) // 2 + 1) + str2 + '+'*((width - len(str2)) // 2)
    else:
        new_str2 = '+' * ((width - len(str2)) // 2) + str2 + '+' * ((width - len(str2)) // 2)
print(new_str2)

str.count(str1) - 统计字符串里另一个字符串出现的次数

str3 = 'ababcd'
str4 = 'bc'
count = 0
if str4 not in str3:
    print('0')
else:
    for index in range(len(str3)):
        if str4 == str3[index:index+len(str4)]:
            count+=1
    print(count)

str.endswith(str) - 判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False

str4 = 'ababcdc'
str5 = 'c'
if str5 not in str4:
    print(False)
else:
    if str5 == str4[-len(str5)::1]:
        print(True)
    else:
        print(False)

str.find(str, beg=0, end=len(string)) - 测字符串中是否包含子字符串str,存在返回起始位置,不存在返回-1

def find1(str1,str2):
    if str2 not in str1:
        print('-1')
    else:
        len_str2 = len(str2)
        len_str1 = len(str1)
        for index in range(len_str1):
            if str2 == str1[index:index+len_str2]:
                print(index)
                break

find1('abcdef','ef')

str.index(str, beg=0, end=len(string)) - 与find方法一样,但是当字符串找不到的时候会报错异常

str.isalnum() - 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

def isalnum1(str1):
    if len(str1) == 0:
        print(False)
    else:
        for item in str1:
            if '0' <= item <='9':
                continue
            elif 'a' <= item <= 'z':
                continue
            elif 'A' <= item <='Z':
                continue
            else:
                print(False)
                break
        else:
            print(True)
isalnum1('a1A')

str.isalpha() - 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False

def isalpha1(str1):
    if len(str1) == 0:
        print(False)
    else:
        for item in str1:
            if 0x4e00 <= ord(item) <= 0x9fa5:
                continue
            elif 'a' <= item <= 'z':
                continue
            elif 'A' <= item <='Z':
                continue
            else:
                print(False)
                break
        else:
            print(True)
isalpha1('中国')

str.isdigit() - 如果字符串只包含数字则返回 True 否则返回 False…

def isdigit1(str1):
    if len(str1) == 0:
        print(False)
    else:
        for item in str1:
            if '0' <= item <= '9':
                continue
            else:
                print(False)
                break
        else:
            print(True)
isdigit1('2')

str.islower() - 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

def islower1(str1):
    if len(str1) == 0:
        print(False)
    else:
        count = 0
        for item in str1:
            if 'A' <= item <= 'Z':
                print(False)
                break
            else:
                if 'a' <= item <= 'z':
                    count += 1
                    continue
        else:
            if count == 0:
                print(False)
            else:
                print(True)
islower1('2ewgwega!!!A')

str.isupper() - 包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

def isupper1(str1):
    if len(str1) == 0:
        print(False)
    else:
        count = 0
        for item in str1:
            if 'a' <= item <= 'z':
                print(False)
                break
            else:
                if 'A' <= item <= 'Z':
                    count += 1
                    continue
        else:
            if count == 0:
                print(False)
            else:
                print(True)
isupper1('AABB')

str.join(xulie) - 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

def join1(str1,xulie):
    new_xulie = ''
    for item in xulie:
        new_xulie += item + str1
    if len(str1) == 0:
        return new_xulie
    else:
        return new_xulie[:len(new_xulie)-1]

print(join1('-',['a','b','c','d']))

str.ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

str2 = 'abcd'
new_str2 = ''
width = 6
if len(str2) >= width:
    new_str2 +=str2
else:                        ### 下面出现的'*'为填充字符可以自定义,默认空格
    new_str2 = str2 + '*' * (width - len(str2))
print(new_str2)

str.rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

str2 = 'abcd'
new_str2 = ''
width = 6
if len(str2) >= width:
    new_str2 +=str2
else:                        ### 下面出现的'*'为填充字符可以自定义,默认空格
    new_str2 = '*' * (width - len(str2)) + str2
print(new_str2)

str.lower() 方法转换字符串中所有大写字符为小写。

def lower1(str1):
    new_str1 = ''
    for item in str1:
        if 'A' <= item <='Z':
            new_str1 += chr(ord(item) + 32)
        else:
            new_str1 += item
    return new_str1

print(lower1('ad214weEF013SFaa'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azured_xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值