3、三目运算符和命名元组

三目运算符
java、JavaScript有类似的三目运算符:判断条件?条件为真时的结果:条件为假时的结果
在Python中,也有属于自己的三目运算符:条件为真时的结果 if 判断条件 else 条件为假时的结果;并且可以进行嵌套,不过一般情况只需嵌套两层即可

判断值是否为10

def test_one(a):
if a < 10:
print("< 10")
elif a > 10:
print("> 10")
else:
print("= 10")

def test_two(a):
res1 = “< 10”
res2 = “> 10”
res3 = “= 10”
# 三目运算符,嵌套使用
res = res3 if a == 10 else (res2 if a > 10 else res1)
return res
命名元组
Python的元组不能给元组内的数据进行命名,并且只能通过索引来获取数据。而命名元组namedtuple则可以对元组内的数据进行命名,并且除了索引,还可以直接根据元素名字来获取数据,其它特征和普通元组一样。

typename:类名称

field_names:元组中值的名称

返回一个typename命名元组类

collections.namedtuple(typename, field_names)
通过上面的方法,可以看得出,命名元祖类可以用来定义一些类对象
定义命名元组类有两种方式
1.之所以第二种方式也可以,是因为命名元组的工厂函数会在字段字符串后默认调用split()函数对字段进行拆解。
2.通过type()函数可以看到,命名元组其实是个类对象,所以它的使用方式和类对象一样

1.定义命名元组

Cat = namedtuple(‘Cat’, [‘color’, ‘age’]) # 类名,[各个属性]
Cat = namedtuple(‘Cat’, ‘color age’) # 快捷方式
print(“type:”, type(Cat)) # type: #<class ‘type’>
实例化命名元组,并定义元素值和取值

2.实例化类对象,并对属性一一赋值

cat1 = Cat(‘橘猫’, ‘橘色 1岁’)
cat2 = Cat(‘短尾猫’, [‘蓝白色’, ‘5个月’])
print(cat1, ‘type’, type(cat1)) # Cat(color=‘橘猫’, age=‘橘色 1岁’) type <class ‘main.Cat’>
print(cat2) # Cat(color=‘短尾猫’, age=[‘蓝白色’, ‘5个月’])

3.取值,可通过属性名和索引取值

print(cat1.color) # 橘猫
print(cat1[0]) # 橘猫
print(cat2.age) # [‘蓝白色’, ‘5个月’]
print(cat2[1]) # [‘蓝白色’, ‘5个月’]
命名元组的一些方法

4.修改对象属性

cat2 = cat2._replace(age=‘6个月’)

5.把cat2对象的值以collections.OrdereDict的形式返回

print(cat2._asdict()) # OrderedDict([(‘color’, ‘短尾猫’), (‘age’, ‘6个月’)])
字段、列表、命名元组的转换

6.把字典转换成命名元组

dic = {‘color’: ‘蓝白’, ‘age’: ‘8个月’} # 元素字段要一致
nt = Cat(**dic)
print(nt) # Cat(color=‘蓝白’, age=‘8个月’)

7.把命名元组转换成列表

lt = list(nt)
print(lt) # [‘蓝白’, ‘8个月’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值