python容器---list

import random
# 容器类型 --python基本数据类型,是python中内置的数据结构
# list tuple dict  set

###### 列表  --list
# 1、有序项目集合
# 2、可变数据类型
# 3、存放任何数据类型(双向链表+数据)

# 列表的定义:(list是一个内建函数)
# lst = []
# type(lst)
# <class 'list'>
# lst2 = list()
# type(lst2)
# <class 'list'>
# list -- 它可以吧其他数据剋行转换成list 参数--传递可迭代对象(能被for循环遍历的都是可迭代对象)
# lst3 = list("abc") #工厂函数 -- 一般是类型转换函数
# lst3
# ['a', 'b', 'c']


# 有序项目集合
# list = [1,2,3]
# lst1 = lisst("abc")  #不要用内建函数作为变量名

# lst1 = ["a","bbb","ccc","d"]
# print( lst1[2])
# print( lst1[-1:1:-1])
# print(lst1[::-1])

# 可变数据类型
# 在原内存地址上,可以修改的,就是可变数据类型
# str1 = "abc"
# lst1 = ["a","b","c"]
# print(str1[1], id(str1))
# print(lst1[1], id(lst1))
# str1[1] = "x" #不可变数据类型
# str1 = "axc"  #只能换个地址重新赋值
# print(id(str1))
# lst1[1] = "x"  #可变数据类型
# print(lst1, id(lst1))

# 可以存放任何数据类型
# lst1 = ["a", 3.4, 4, [1,2],print]
# print(lst1)

########列表的使用
# 列表的属性方法
# name_list = ["zhangzheng", "tangruixi", "xuluo", "zhangyapiing"]
# print( dir(name_list) )
# 属性使用:  变量名.属性名   方法:变量名.方法名()
######新增
# -- append 在末尾添加一个元素
# name_list.append("liuxiaoxiao")
# print(name_list)
# -- insert 可以在指定的位置插入
# name_list.insert(1,"gongnian")
# print(name_list)
# -- extend  传递的元素是可迭代对象  可以用于两个列表的合并
# name_list.extend("abc")
# print(name_list)

# 运算
# lst1 = [1,2]
# lst2 = [3,4]
# result = lst1 + lst2
# print( result )
# print(lst1 *3)

# 删除
# lst = ["A", "B","C", "x", "y", "z", "x", "z"]
# -- pop  按索引删除,默认删除最后一个,并且返回删除的元素
# result = lst.pop()
# print( result, lst)
# result2 = lst.pop(2)
# print(result2,lst)

# -- remove 按元素删除,有重复的元素,默认删除第一个。如果没有这个元素就抛出异常
# lst.remove("x")
# lst.remove("m")
# print(lst)
# del lst[0:4:2]  #使用关键字删除,只要能截取到的都能删
# print(lst)
# lst.clear()  #清空列表
# print(lst)

#修改
# lst = ["a", 1, 5, "b", "x", "y", "z"]
# lst[3] = "bbbbbb"
# print(lst)
# lst[2:5] = "qwe" #切片修改,赋值对象是一个可迭代对象
# print(lst)


# 统计类
# lst = ["ab", "a", "b", "ab", "a"]
# print( lst.count("a"),lst.count("ab"))
# print(lst.index("a"))  #第一次出现的下标
# print( len(lst) )

# 复制 -- copy
# a = 300
# b = a  #python -- 引用赋值,引用传递
# print(id(a), id(b))
# b = 400 #不可变数据类型,不能修改,只能重新赋值
#
# lst = [1,2,3]
# lst2 = lst
# lst2.append(4)
# print(lst)
# 完全复制一份全新的
# lst3 = lst.copy()
# lst4 = lst[:]
# lst3.append(5)
# lst4.append(6)
# print(lst3,lst4,lst)

# 拷贝 =》深拷贝、浅拷贝、赋值
    # 赋值 =》 li2 = li1 =>指向同一个内存地址(同一个对象)
    # 浅拷贝 => li3 = li1.copy() => 指向不同的内存地址(只拷贝了最外层温暖的数据)
    # 深拷贝 => li4 = copy.deepcopy(li3) 把所有的数据全部都复制一份,开辟新空间存储下来

# 反转和排序
# lst = ["a", "c", "A", "x", "Y"]
# lst.reverse()  #在原列表的基础上进行反转,负切片不会改变原列表
# print(lst)
# lst.sort(reverse=True) #降序  按ASCII码排序
# print(lst) #在原列表基础上排序

# 成员关系判断,遍历
# lst = ["a", "c", "A", "x", "Y"]
# print("A" in lst)
# print("A" not in lst)
#
# for i in lst:
#     print(i)
# for k, v in enumerate(lst):
#     print(k,v)

# 定义班级名单,使用列表保存,每次运行的时候随机抽取列表中的人员回答问题
# 可以无限次抽取,直到按q退出,或者列表中的人员全部抽取完成退出
# 按任意键开始抽,抽到过就不用再抽
# name_list = ["youshujuan", "quanyan", "zhouyuqing", "xiajingwei", "yangyuchan"]
# for i in range(len(name_list)):
#     num = random.randint(1,len(name_list))
#     a = input("请按任意键继续或按q退出")
#     if a == "q":
#         break
#     print(f"抽取到:{name_list[num-1]}")
#     name_list.pop(num-1)

# 老师的方法
# name_list = ["youshujuan", "quanyan", "zhouyuqing", "xiajingwei", "yangyuchan"]
# while len(name_list):
#     tmp = input("按任意键进行抽取,按q退出")
#     if tmp == "q":
#         break
#     result = random.choice(name_list)
#     print(f"抽取到:{result}")
#     name_list.remove(result)

# lst = [1,4,3,3,2,6,8,3]
# 从键盘输入一个数 10  --》4,6 -->1,5(下标)
# lst = [1,1,3,3,2,6,8,3]
# sum = int(input("please input a number:"))
# flag = 0
# for k,v in enumerate(lst):
#     for i in lst[k+1:]:
#         if v + i == sum:
#             flag = 1
#             print(k,lst.index(i))
#             break;
#     if flag == 1:
#         break;
# if flag != 1:
#     print("无")


# 其他同学的
# lst = [6, 8, 7, 1, 2, 3, 4]
# num = int(input("please input num:"))
# flag = 0
# for i in lst:
#     num1 = num - i
#     lst1 = lst.copy()
#     lst1.remove(i)
#     if num1 in lst1:
#         print(lst.index(i), lst.index(num1))
#         flag += 1
#         break
# if flag == 0:
#     print("无")

#老师的方法
# lst = [1,4,3,3,2,6,8,3]
# num = int(input("please input a number"))
# for k,v in enumerate(lst):
#     tmp = num - v
#     if tmp in lst[k+1:]:
#         print(k,lst[k+1:].index(tmp) + k + 1)


# 一条船30个人,最多载18人。
# 把30个人进行编号,数到第7个人就下船,最后输出哪些人下船了

# 其他同学的(1)
# lst = []
# for i in range(30):
#     lst.append(i+1)
# while len(lst) > 18:
#     for i in range(6):
#         lst.append(lst.pop(0))
#     print(lst.pop(0))

# 其他同学的(2)
# lst = []
# lst_pre = []
# lst_down = []
# for i in range(30):
#     lst.append(i + 1)
# while len(lst) > 18:
#     lst_pre = lst[0:7]
#     lst_down.append(lst_pre[6])
#     lst = lst[7:] + lst_pre[0:6]
# print(lst_down)


# list转为字符串 用",".join(lst) list里面存放的必须是字符串才能拼接 ”“里面可以规定拼接时用什么分隔
# lst = ["1","2","3"]
# print(",".join(lst))


# nums = [2,7,11,15]
# target = 9
# # 类型注解 type hint
# def twosum(nums:list[int],target:int) -> list[int]:
#     lst = []
#     for k1,v1 in enumerate(nums):
#         for k2,v2 in enumerate(nums):
#             if k1 != k2 and v1 + v2 == target:
#                 lst.append(k1)
#                 lst.append(k2)
#                 return lst
#
#
# def twosum2(nums:list[int],target:int) -> list[int]:
#     lst = []
#     for k,v in enumerate(nums):
#         x = target - v
#         if x in nums[k+1:]:
#             lst.append(k)
#             lst.append(nums[k+1:].index(x)+k+1)
#             return lst
#
# print(twosum2(nums,target))

class role():
    def __init__(self,name):
        self.name = name

lst1 = {}
username = input()
lst1[username] = role(username)
print(lst1[username].name)
print(lst1[0])
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值