首页 > 编程语言 >python 切片slice和实现一个切片类

python 切片slice和实现一个切片类

时间:2024-01-17 15:22:48浏览次数:30  
标签:__ slice group name python self alist 切片 staffs

alist=[2,5,32,34,11,44,65,113]
print(alist[::])##取所有alist [2, 5, 32, 34, 11, 44, 65, 113]
print(alist[::-1])##alist倒序 [113, 65, 44, 11, 34, 32, 5, 2]
print(alist[::2])##取alist偶数位数值 [2, 32, 11, 65]
print(alist[1::2])##取alist奇数位数值 [5, 34, 44, 113]
print(alist[3:1:-1])##取[34,32]
alist[:0]=[22,33] ##在头插入22,33
print(alist)  #[22, 33, 2, 5, 32, 34, 11, 44, 65, 113]
import numbers


class Group:
    def __init__(self,group_name,company_name,staffs):
        self.group_name=group_name
        self.company_name = company_name
        self.staffs = staffs

    def __getitem__(self, item):
        cls=type(self)
        # if isinstance(item,slice):
        #     return cls(group_name=self.group_name,company_name=self.company_name,staffs=self.staffs[item])
        # elif isinstance(item,numbers.Integral):
        #     return cls(group_name=self.group_name,company_name=self.company_name,staffs=self.staffs[item])
        _staffs=self.staffs[item] if isinstance(item,slice) else [self.staffs[item]]
        return cls(group_name=self.group_name, company_name=self.company_name, staffs=_staffs)
        # return self

    def __reversed__(self):
        self.staffs.reverse()

    def __len__(self):
        return len(self.staffs)

    def __iter__(self):
        return iter(self.staffs)

    def __contains__(self, item):
        return (item in self.staffs)

    def __str__(self):
        return ','.join(self.staffs)
group=Group('czbsit','staff',['aa','lisi','zhangsan','wangwu'])
subgroup=group[:2]
print(subgroup)
#reversed(group)
print(group)

  

  

标签:__,slice,group,name,python,self,alist,切片,staffs
From: https://www.cnblogs.com/howhy/p/17970089

相关文章

  • 几行Python代码,轻松搞定Excel表格数据去重
    转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。众所周知,Python在处理Excel数据文档时非常强大。最近也尝试了一下使用Python处理Excel数据,几行代码就能实现一个非常有用的功能,非常棒!这次实验的是,使用Python给Excel数据去重。创建......
  • Python实现AI换脸功能
    运行时如果提示模块requests和simplejson不存在使用命令pipinstallrequestspipinstallsimplejsonimportrequestsimportjsonimportsimplejsonimportbase64#第一步:获取人脸关键点deffind_face(imgpath):""":paramimgpath:图片的地址:return:......
  • python3之多进程线程
    本文内容参考https://www.liaoxuefeng.com/wiki/1016959663602400/1017628290184064 多进程os模块的fork()多进程(multiprocessing):Unix/Linux操作系统提供了一个fork()函数,fork()函数调用时,操作系统自动把当前进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回。......
  • Python字符串删除第一个字符常用的方法!
    字符串是常用的数据类型之一,在Python中,用引号表示字符串,双引号或单引号都可以,保持统一即可。那么Python字符串如何删除第一个字符?想要删除字符串第一个字符,有多种办法可以实现,具体请看下文。1、使用切片切片是Python中一个非常强大的功能,可以用于获取列表、字符串和元......
  • Python 面向对象的私有属性获取
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、面向对象的私有属性获取4.1.2classFoo:def__init__(self):self.name='wangwu'......
  • python-pyspark数据输入
    数据容器转rdd对象通过SparkContext对象的parallelize成员方法,将python数据容器转为rdd对象frompysparkimportSparkConf,SparkContextconf=SparkConf().setMaster("local[*]").setAppName("test_spark_app")sc=SparkContext(conf=conf)data1=[1,2,3,4,5]data2=(1......
  • (Python)每日代码||2024.1.17||函数中给列表形参默认值时,该默认列表在函数中的改变会
    deff(x,li=[1]):print(id(li))li.append(x)print(li)f('a')#第一次调用函数print()f('b')#第二次调用函数print()f('a',[])#第三次调用函数print()f('b',[2,2])#第四次调用函数print()f('a')#第五次调用函数'''输出14......
  • python 连接mysql 报错 打包 报错
    mysql.connector.connect(auth_plugin='mysql_native_password',host=lis[0],database=lis[1],user=lis[2],password=lis[3])auth_plugin='mysql_native_password'Python连接MySQL报错:mysql.connector.errors.NotSupportedError:Authenticationplugin......
  • python循环语句
    while循环与其他语言不同的是python中的while循环没有dowhile语句,要么直接使用while循环,或者使用whileelse语句,其基本格式如下:while<expr>:<statement(s)>else:<additional_statement(s)>for循环遍历循环格式如下(将序列中的元素依次赋值给变量,再通过循环体处......
  • python 在排序数组中查找元素的第一个和最后一个位置 多种解法
    二分查找:基于二分查找的算法可以在O(logn)的时间复杂度内解决该问题。具体实现方式是,先使用二分查找找到该元素的位置,然后向左和向右扩展,直到找到第一个和最后一个位置。代码如下:defsearchRange(nums,target):defbinarySearch(nums,target,lower):left,righ......