精华内容
下载资源
问答
  • 我喜欢筛选出字符串长度不等于10的数据。如果我试图筛选出任何列A或B的字符串长度不等于10的行,我尝试了这个方法。df=pd.read_csv('filex.csv')df.A=df.A.apply(lambda x: x if len(x)== 10 else np.nan)df.B=df.B....

    我喜欢筛选出字符串长度不等于10的数据。

    如果我试图筛选出任何列A或B的字符串长度不等于10的行,我尝试了这个方法。df=pd.read_csv('filex.csv')

    df.A=df.A.apply(lambda x: x if len(x)== 10 else np.nan)

    df.B=df.B.apply(lambda x: x if len(x)== 10 else np.nan)

    df=df.dropna(subset=['A','B'], how='any')

    这工作很慢,但很有效。

    但是,当A中的数据不是字符串而是数字(读取csv时解释为数字)时,有时会产生错误。File "", line 1, in

    TypeError: object of type 'float' has no len()

    我相信应该有更高效和优雅的代码来代替这个。

    根据下面的答案和评论,我找到的最简单的解决方案是:df=df[df.A.apply(lambda x: len(str(x))==10]

    df=df[df.B.apply(lambda x: len(str(x))==10]

    或者df=df[(df.A.apply(lambda x: len(str(x))==10) & (df.B.apply(lambda x: len(str(x))==10)]

    或者df=df[(df.A.astype(str).str.len()==10) & (df.B.astype(str).str.len()==10)]

    展开全文
  • 输入一个字符串(不含空格),请寻找输入中包含的所有蛇形字符串。 1. 蛇形字符串的定义: 1.1 字符对定义:字符对有同一字母的大小组成(前大后小),如:Aa,Dd。 1.2 蛇形字符串中包含的字符对必须是连续的...

    输入一个字符串(不含空格),请寻找输入中包含的所有蛇形字符串。

    1. 蛇形字符串的定义:

        1.1 字符对定义:字符对有同一字母的大小组成(前大后小),如:Aa,Dd。

        1.2 蛇形字符串中包含的字符对必须是连续的字母,并按照字母排序表排序,如:AaBbCc。

    2. 从输入字符串中寻找字符组成蛇形字符串(字符顺序不限),符合规则:

        2.1 每次寻找最长的蛇形字符串。

        2.2 使用过的字符不能重复使用。

    3. 输出按首字母排序,如果首字母相同则按长度排序。

    def run():
        string = input()
        out_ls = []
        while True:
            char_ls = [x for x in string if ('A'<=x<='Z') and (x.lower() in string)]
            if len(char_ls)==0:
                break
            select_ls = list(set(char_ls))
            loc_ls = ['_']*26
            for x in select_ls:
                loc_ls[ord(x)-ord('A')] = x
            loc_str = ''.join(loc_ls)
            item_ls = loc_str.split('_')
            item_ls = sorted(item_ls, key=lambda x: len(x))
            out_ls.append(item_ls[-1])
            string_ls = [x for x in string]
            for x in item_ls[-1]:
                string_ls.remove(x)
                string_ls.remove(x.lower())
            string = ''.join(string_ls)
        if len(out_ls)==0:
            print('Not Found')
        else:
            out_ls = sorted(out_ls, key=lambda x: len(x), reverse=True)
            out_ls = sorted(out_ls, key=lambda x: x[0])
            for x in out_ls:
                for xx in x:
                    print(xx+xx.lower(), end='')
                print()
    run()

    测试一

    输入:SxxsrR^AaSs

    输出:

        Aa
        RrSs
        Ss

    测试二

    输入:SwSE$345456DD$$#E#eswsxxsssAAWDxxdderfvcRFER65645g^^%%^UnbnvccTRChnyvcxcvVCFR

    输出:

        CcDdEeFf
        CcDdEe
        RrSs
        Ss
        VvWw

    展开全文
  • 要求:完成函数correct_sentence(str),输入一个字符串,返回一个以大写字母开头,以“.”结尾的字符串副本 输入:字符串 输出:字符串 示例: correct_sentence(&quot;greetings, friends&quot;) == ...

    Correct sentence

    一、题目描述

    要求:完成函数correct_sentence(str),输入一个字符串,返回一个以大写字母开头,以“.”结尾的字符串副本

    输入:字符串

    输出:字符串

    示例

    correct_sentence("greetings, friends") == "Greetings, friends."
    correct_sentence("Greetings, friends") == "Greetings, friends."
    correct_sentence("Greetings, friends.") == "Greetings, friends."

    解题提示

    1. 可以字符串相加;
    2. 可以用lambda表达式:
    correct_sentence = lambda t: t[0].upper() + t[1:] + '.'*(t[-1] != '.')

    二、解题示例

    1. 字符串相加

    def correct_sentence(text: str) -> str:
        """
            returns a corrected sentence which starts with a capital letter
            and ends with a dot.
        """
        # your code here
        if text[-1] == '.':
            tmp = ''
        else:
            tmp = '.'
        return text[0].upper() + text[1:]+tmp
    
    
    
    if __name__ == '__main__':
        print("Example:")
        print(correct_sentence("greetings, friends"))
    
        # These "asserts" are used for self-checking and not for an auto-testing
        assert correct_sentence("greetings, friends") == "Greetings, friends."
        assert correct_sentence("Greetings, friends") == "Greetings, friends."
        assert correct_sentence("Greetings, friends.") == "Greetings, friends."
        assert correct_sentence("hi") == "Hi."
        assert correct_sentence("welcome to New York") == "Welcome to New York."
    
        print("Coding complete!")

    2. lambda

    def correct_sentence(text: str) -> str:
        """
            returns a corrected sentence which starts with a capital letter
            and ends with a dot.
        """
        # your code here
        return lambda t: t[0].upper() + t[1:] + '.'*(t[-1] != '.')
    
    
    if __name__ == '__main__':
        print("Example:")
        print(correct_sentence("greetings, friends"))
    
        # These "asserts" are used for self-checking and not for an auto-testing
        assert correct_sentence("greetings, friends") == "Greetings, friends."
        assert correct_sentence("Greetings, friends") == "Greetings, friends."
        assert correct_sentence("Greetings, friends.") == "Greetings, friends."
        assert correct_sentence("hi") == "Hi."
        assert correct_sentence("welcome to New York") == "Welcome to New York."
    
        print("Coding complete!")
    展开全文
  • python 文档字符串 默认参数 关键字参数 传递函数 lambda函数

    1》首先,看一个例子:

    自定义一个函数 isPrime( ) 来判断一个整数是否是素数,然后通过 for 循环,不断的调用 isPrime( ) 函数,找出1~100间的所有素数。

    python2 代码如下:

    from math import sqrt
    def isPrime(x):
        "Judge whether an positive integer is a prime number"
        if x==1:
            return False
        k=int(sqrt(x))
        for j in range(2,k+1):
            if x%j==0:
                return False
        else:
            return True


    isPrime()函数也可以写成下面的形式(与上面的定义仅仅相差一条语句):

    def isPrime(x):
        "Judge whether an positive integer is a prime number"
        if x==1:
            return False
        k=int(sqrt(x))
        for j in range(2,k+1):
            if x%j==0:
                return False
        return True


    #通过for循环,不断的调用isPrime()函数,找1~100间的素数
    for i in range(1,101):
        if isPrime(i):
            print i,

    运行程序结果如下:

    2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

    上面,我们自定义了isPrime()函数,函数体中的第一行称为 文档字符串,使用文档字符串可以为我们的模块,类,函数添加说明性文字,使程序易读易懂。

    如何查看一个函数中的文档字符串呢?如下:

    >>> isPrime.__doc__
    'Judge whether an positive integer is a prime number'

    函数定义后,使用该函数的时候,需要进行函数调用,调用函数的方式如下:

    functionName(parameter1,parameter2,……)
    小括号是必须的,即使没有参数,小括号也不能省略。

    2》默认参数

    函数的参数可以有默认值,在函数的定义中,默认参数以赋值语句的形式提供,如下:

    例子1:

    def f(x=True):
        if x:
            print 'x is a correct word!'
        print 'OK!'

    >>> f() #调用时没有给出参数,使用默认值
    x is a correct word!
    OK!
    >>> f(False) #调用时给出参数,使用该参数
    OK!

    例子2:

    def f(x,y=True):

        if y:
            print x,'and y are both correct!'
        print x,'is Ok!'

    >>> f(68) # y使用默认值
    68 and y are both correct!
    68 is Ok!
    >>> f(68,False) # y不使用默认值,取值False
    68 is Ok!

    例子3:

    def f(y=True,x):
        if y:
            print x,'and y are both correct!'
        print x,'is Ok!'

    函数定义成这样,会报错,错误信息如下:
    SyntaxError: non-default argument follows default argument

    综上,定义函数时,如果有默认参数,则默认参数必须放在参数列表的最后。

    3》关键字参数

    关键字参数设计的目的是让调用者通过使用参数名区分参数,允许改变参数列表中参数的顺序。

    例子1:

    def f(x,y):
        if y:
            print x,'and y are both correct!'
        print x,'is Ok!'

    >>> f(68,False)
    68 is Ok!
    >>> f(y=False,x=68)
    68 is Ok!

    >>> f(68,y=False)

    68 is Ok!
    >>> f(y=False,68)
      File "<stdin>", line 1
    SyntaxError: non-keyword arg after keyword arg
    >>> f(x=68,false)
      File "<stdin>", line 1
    SyntaxError: non-keyword arg after keyword arg

    例子2:

    def f(x,y,z,m,n):
        if y:
            print x,'and y are both correct!'
        print x,'is Ok!'
        print z,'is OK!'
        print m,'is OK!'
        print n,'is OK!'

    >>> f(68,False,m=2,n=3,z=1)
    68 is Ok!
    1 is OK!
    2 is OK!
    3 is OK!


    综上,使用关键字参数,不用考虑参数的顺序,但必须放在参数列表的最后。关键字参数的使用,把整个参数表打乱了,一旦它开始了以后,

    就必须要把它之后的所有的参数名都写下来

    4》传递函数:把函数名当做一个普通参数传给另外一个函数

    例子:

    def addMeToMe(x):
        return x+x
    def self(f,y): #第一个参数是函数名
        print f(y)

    >>> self(addMeToMe,4.4)
    8.8

    5》lambda函数

    先看一个例子:

    定义一个普通函数:

    def my_add(x,y):
        return x+y

    >>> my_add(3,4)
    7

    定义一个lambda函数:

    my_add=lambda x,y:x+y

    >>> my_add(2,3)
    5

    我们看一张图:


    通过上图,可以看出,定义lambda函数的过程,,如下:

    首先,我们用定义普通函数的方法,定义一个函数my_add()
    lambda函数怎么写的呢?
    首先把原来的函数名改成lambda,后面接着是原先的参数列表,再跟着冒号,
    最后一项是return后面的表达式。
    最后,把这样的一个lambda函数的调用赋给变量(其实就是一个函数名)
    然后,跟普通的函数一样进行调用即可。

    综上,lambda函数没有return,更符合数学中函数的使用习惯,它不像普通函数那样,需要有一个定义函数的过程,因此,更加精简。

    它还有一个非常吸引人的地方是lambda函数是匿名函数,它不需要取函数名。

    上述这些,可以减轻我们的负担。另外,lambda函数跟函数式编程里面的filter(),reduce()等等这些函数,结合起来使用也是非常方便的。

    (完)





    展开全文
  • 字符串反转 python实现

    2019-04-15 16:25:07
    Python环境下反转字符串的几种方法,例如将z= "abcdef"反转成 "fedcba" 1:使用切片 result = z[::-1] 2:使用for循环 def func(z): result = "" max_index = len(z)-1 for index,value in enumerate(z):...
  • Python格式化字符串f-string概览

    万次阅读 多人点赞 2018-07-15 01:11:22
    f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加简便。...
  • s=["q","abc","tx","zzui","aa11"... print s.sort(key=lambda x:len(x)) print s s.sort() print s s=['e', 'ey', 'eyj', 'eyjuo', '
  • python完成分析log的工作用(){tagshow(event)}">python分析log,ip库取自emule(){tagshow(event)}
  • Python 基础语法: 1....字符串分割,取字符 4.字符串索引 index 分片 正向 反向 区间 5.if+异常处理 1.基本变量类型及类型转化 intfloatstr 得到数据类型 type() int->strfloat->str...
  • python字符串各种应用与技巧
  • Python截取中文字符串

    千次阅读 2018-04-19 12:19:35
    Python 截取字符串 题目描述 在GBK编码下,请编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但是要保证汉字不被截半个,同时忽略字符串中的数字后输出最终结果#-*-coding:gbk -*-...
  • python中处理字符串是很好的,有时需要将多行字符串,或着不规则的字符串转换为单行字符串, 每个单词直接用空格分开等,如有的含有换行符号,tab符号\t,多个空格,等,可以这样来转换为 单行字符串,如:  string ...
  • python-字符串处理

    千次阅读 2020-02-08 16:05:04
    判读字符串 a 是否以字符串 b 开头或结尾 调整字符串中文本的格式 对字符串进行左,右,居中对齐 删除字符串中不需要的字符 字符串拼接 场景:把列表中的数据拼接成一个字符串 In [1]: li = [3, ‘cxk’, ‘kk’, ...
  • 删除字符串中的控制字符(python

    千次阅读 2016-02-02 16:22:52
    要删除字符串中的控制字符,因为无符号控制字符不能够在xml中编码,诸如 ^B 转换成 \x02 ,如果作为内容写入xml,\ 会导致xml错误,所以需要把控制字符删除。 python 代码如下: def strip_control_characters(input...
  • python中将列表中的多个字符串元素合成一个字符串。 实现将1.txt中按第二个字符串进行排序然后再将结果保存在2.txt中 with open('1.txt') as f: lines = f.readlines() new_lines = [] write_lines = [] for ...
  • python 字符串方法大全

    千次阅读 2018-07-31 23:57:20
    字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性和定制(见str.format(), 格式化字符串的语法和自定义字符串格式化)和其他基于C printf风格的格式,处理范围较窄的类型,是稍硬使用正确,但...
  • 字符串太长 pep8Python f-strings or formatted strings are the new way to format strings. This feature was introduced in Python 3.6 under PEP-498. It’s also called literal string interpolation. Python ...
  • Python实现字符串排列

    千次阅读 2019-07-11 10:00:32
    支持原创,转载链接如下: ... 题目描述 ...例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字...
  • 给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从1增加到字符串长度减1,将所有的得到的切片统计结果,在这里不考虑单个字符的重复模式,好了,...
  • python-回文字符串

    千次阅读 2019-02-13 13:03:46
    回文字符串(10分) 题目内容: 给定一个字符串,判断它是否是回文字符串(即类似于peep, 12321这样的对称字符串),如果是输出True,不是则输出False。 判断过程中假定只考虑字母和数字字符,而且忽略字母的大小...
  • python实现字符串去重

    千次阅读 2020-05-16 11:29:12
    注意:读取字符串的顺序为从右往左,如果结果是以0结束,则删除0;如果结果有负号’-’ 需要保留 def solution(string): # 确认结果符号 sign = "-" if string[0] == "-" else "" # 根据需要去除字符串符号位 ...
  • Python字符串title()

    千次阅读 2020-07-10 13:24:52
    Python String title() Python字符串title() Python String title() function returns a title cased version of the string. The first character of the words are in Uppercase and all the remaining ...
  • Python字符串的截取

    千次阅读 2019-04-18 15:39:51
    Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。 字符串的截取的语法格式如下: 变量[头下标:尾下标] 索引值以 0 为开始值,-1 为从末尾的开始位置。 加号 + 是字符串的连接符, ...
  • Python 的基础学习和编码规范。 ...首先,需要说明python字符串类型。 在python中,字符串的类型分为str和unicode两种类型。str使用的是ASCII编码,只能表示英文字符串。unicode使用的是unico
  • 字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助。格式化输出:内容按照一定格式要求进行输出。1.使用占位符%输出python2....
  • Python删除字符串后缀问题

    千次阅读 2020-11-24 12:54:26
    python 中用 `str.rstrip(' ')` 来删除字符串后缀是错误的,这个方法会删除参数中各字符的任意组合。 解决方法: 1. 用 Python 3.9:s.removesuffix('suffix') 2. 正则表达式:re.sub(re.escape(suffix) + '$', ''...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,632
精华内容 24,252
关键字:

lambda字符串python

python 订阅