鱼C论坛

 找回密码
 立即注册
查看: 2066|回复: 24

[已解决]extend 追加多个元素,打印none

[复制链接]
发表于 2023-5-29 10:09:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
extend() 函数与 append() 函数无返回值,只是在原来的位置修改原来的列表。
list1 = ['安琪拉','妲己','韩信','典韦','吕布']
print(list1)

list2 = ['小乔','貂蝉']
print(list2)

list3 = list1.extend(list2)
print(list3) #为什么打印none 的原因

如果需要打印list3,需要把 list1 单独赋值:
list3 = list1;
最佳答案
2023-5-29 10:46:22
因为extend()方法无返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-29 10:46:22 | 显示全部楼层    本楼为最佳答案   
因为extend()方法无返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-29 15:37:18 | 显示全部楼层
list1: del, remove, pop, list1.count(list[i])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-6 10:23:44 | 显示全部楼层
拆包:将元组、列表等可迭代对象中的值分配给多个变量。

tuple1 = (1, 2, 3)
a, b, c = tuple1
print(a) # 1
print(b) # 2
print(c) # 3


list1 = [1, 2, 3]
a, b, c = list1
print(a) # 1
print(b) # 2
print(c) # 3

部分拆包:
tuple1 = (1, 2, 3)
a, *b = tuple1
print(a) # 1


dict1 = {'a': 1, 'b': 2, 'c': 3}
a, b, c = dict1.values()
print(a) # 1
print(b) # 2
print(c) # 3

# 扩展到函数关键字参数中
dict2 = {'a': 1, 'b': 2, 'c': 3}
func(**dict2) # 1 2 3
print(b) # [2, 3]

函数:
def func(a, b, c):
    print(a, b, c)

lst = [1, 2, 3]
func(*lst) # 1 2 3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-6 10:26:49 | 显示全部楼层
在部分拆包中,*被用来收集一个序列中的剩余元素,将它们打包成一个列表。* 后面的变量名可以匹配0个或多个元素。

部分拆包只能使用一次,且只能在最后一个位置参数处使用。否则会引发 SyntaxError 异常。

str1 = 'abcde'
a, *rest = str1
print(a) # 'a'
print(rest) # ['b', 'c', 'd', 'e']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-6 10:35:46 | 显示全部楼层
lst2.sort():列表方法,会修改原列表;new_lst = sorted(lst1)不影原列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-6 16:08:07 | 显示全部楼层
位置参数和命名参数。 形式参,缺省参数,*参, **参; 还有 命名参数:def stu_info(name,age,address, school="tuling")

def test_1(a, b=2, *args, **kwargs):
    print(f'args={args},a={a},b={b},kwargs={kwargs}')

test_1(1,3,4,5,6, name="zhangsan",age=18)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-6 17:31:15 | 显示全部楼层
Python的引用机制使得我们可以轻松地处理数据对象,同时也让 Python 具备了一些高级特性,比如反射、动态类型、垃圾回收等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 06:50:32 | 显示全部楼层
迭代器是指实现了 iter() 和 next() 方法的对象,它能够遍历一个容器中的所有元素,并且只能向前遍历。

生成器是一种特殊的迭代器,它使用 yield 语句,生成序列中的下一个值。可以视为一个函数,每次调用生成器的 next() 方法时,它会从上次暂停的位置继续执行,直到再次遇到 yield 语句,然后将 yield 后面的表达式作为下一个值返回给调用者。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 08:07:59 | 显示全部楼层
#闭包:外部函数封闭了内部函数,但是:内部函数引用了外层函数的变量时:比如形参,就形成了一个闭包。



def test(a):
    #外部函数将内部函数封闭了 ,但是内部函数可以直接使用外部函数的:形参
    def wrapper():
          print(a)
    return wrapper

t = test(10)
#t变量拿到了当前wrapper函数的地址 ,所以:

t()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 10:14:48 | 显示全部楼层
dict_1 = {'a': 1, 'b': 2, 'c': 3}
dict_1_list = dict_1.items()
print(dict_1_list)

for key, value in dict_1.items():
    print(key, value)

    # dict_items([('a', 1), ('b', 2), ('c', 3)])
    # a
    # 1
    # b
    # 2
    # c
    # 3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 10:27:19 | 显示全部楼层
key=lambda x: x[1]['age']

对于每个元素x,取出其第二个值,也就是字典中的人员信息,然后再取出其中的'age'字段,作为排序关键字。这样就可以根据每个人的年龄大小来对字典进行排序了。
people = {
    'person1': {
        'name': '张三',
        'age': 20,
        'school': '清华大学'
    },
    'person2': {
        'name': '李四',
        'age': 22,
        'school': '清华大学'
    },
    'person3': {
        'name': '王五',
        'age': 21,
        'school': '清华大学'
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 10:29:39 | 显示全部楼层
# 按照年龄排序并输出每个人的信息
for person_id, person_info in sorted(people.items(), key=lambda x: x[1]['age']):
    print(person_info['name'], person_info['age'], person_info['school'])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 15:55:47 | 显示全部楼层
sort()方法是Python中的一个列表(list)函数,用于将列表中的元素进行排序,也可以指定排序的规则和方式。下面是一个使用sort()函数对列表进行排序的示例:

my_list = [3, 1, 4, 2, 5]
my_list.sort()
print(my_list) # 输出:[1, 2, 3, 4, 5]


my_list = [3, 1, 4, 2, 5]
my_list.sort(reverse=True)
print(my_list) # 输出:[5, 4, 3, 2, 1]

my_list = ['aa', 'abc', 'c', 'abcd', 'b']
my_list.sort(key=len) # 按照元素的长度进行排序
print(my_list) # 输出:['c', 'b', 'aa', 'abc', 'abcd']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 16:00:34 | 显示全部楼层
当一个列表中的元素是字典时,可以使用sort()方法对其进行排序。下面是一个示例代码:

python
my_list = [
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 32},
    {'name': 'Charlie', 'age': 28},
]
my_list.sort(key=lambda x: x['age']) # 按照年龄升序排序,25,28,32————排序依据是每个字典中键为'age'的值,即人的年龄。
print(my_list)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 16:02:38 | 显示全部楼层
lambda表达式中,x表示列表中的每一个元素,也就是每个字典;x['age']表示获取字典x中键为'age'的值,也就是人的年龄。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-7 16:41:17 | 显示全部楼层
函数参数的意义: 取决于,你在什么地方调用!
所以,这个代码是错的,因为 列表,需要用数字来索引:
my_list = [
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 32},
    {'name': 'Charlie', 'age': 28},
]

print(my_list['age'])


但是,这个是对的,因为函数 在调用时候,传递的是 列表中 第一个元素 字典。
stus = [
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 32},
    {'name': 'Charlie', 'age': 28},
]

def sort_by_age(stu_list):
    return stu_list['age']

for stu in stus:
    print(sort_by_age(stu))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 07:39:53 | 显示全部楼层
创建实例属性方法:3种

1: 通过实例对象创建
class Person:
    pass
t1 = Person()
t1.name = 'zhangsan'

2: 实例方法中定义:self.name ,注意:实例方法在实例对象调用后,才能用实例属性。

3: 构造方法(魔术方法)中创建:创建方法和 2同,但是,实例化过程中会自动进行初始化, def __init__  def重写了 内部函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 08:21:09 | 显示全部楼层
私有属性:不能在类的外部 访问 和 调用。只能在 类的内部,创建一个 实例方法,来访问:

self.__age = age

def get_attr(self):
    return self.__age
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-9 15:37:01 | 显示全部楼层
创建实例属性方法:3种

1: 通过实例对象创建,也叫动态 创建属性。
class Person:
    pass
t1 = Person()
t1.name = 'zhangsan'

2: 实例方法中定义:self.name ,注意:实例方法在实例对象调用后,才能用实例属性。

3: 构造方法(魔术方法)中创建:创建方法和 2同,但是,实例化过程中会自动进行初始化, def __init__  def重写了 内部函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 08:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表