【问题标题】:extract percentages of a string提取字符串的百分比
【发布时间】:2014-05-27 02:04:06
【问题描述】:

我正在寻找一个 python 代码来识别氨基酸序列的长度(作为字符串输入),以及字符串的前 20%、字符串的后 20%,以及字符串的中间 60%。

我知道我可以使用切片,但是您必须知道要提取的字符串序列的确切位置(例如,[0:20]-->从位置 1 到 20 返回字符串)。有人对如何做到这一点有任何想法吗?谢谢!

【问题讨论】:

    标签: python string slice


    【解决方案1】:

    您仍然可以使用切片。只需先弄清楚字符串的长度即可。

    length = len(your_string)
    
    first = your_string[:int(length*0.2)]
    middle = your_string[int(length*0.2):int(length*0.8)]
    last = your_string[int(length*0.8):]
    

    这是python解释器的输出:

    >>> your_string = '1234567890'
    >>> length = len(your_string)
    >>> 
    >>> first = your_string[:int(length*0.2)]
    >>> middle = your_string[int(length*0.2):int(length*0.8)]
    >>> last = your_string[int(length*0.8):]
    >>> 
    >>> print (first, middle, last)
    ('12', '345678', '90')
    

    请注意,前 20% 和后 20% 的长度可能并非在所有情况下都相同。例如,大小为 11 的输入字符串的前 20% 有两个字符,后 20% 有三个字符。

    【讨论】:

    • 您需要使用middle = your_string[int(length*0.2):int(length*0.8)]。请注意输出中缺少的“78”。
    【解决方案2】:

    您可以在将字符串作为参数的函数中定义所有内容

    你可以这样做

    def amino(string):
        L=len(string)
        twenty = (20 * L) / 100
        sixty  = (60 * L) / 100
        print(string[:int(twenty)])
        print(string[int(twenty):int(twenty+sixty)])
        print(string[int(twenty+sixty):])
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      def amino_acid_sequence(string):
          first = int(len(string) * 0.2)
          middle = int(len(string) * 0.6)
          return (string[:first], string[first:first + middle], string[first + middle:])
      

      以及测试结果:

      >>> amino_acid_sequence('1234567890')
      ('12', '345678', '90')
      >>> amino_acid_sequence('1234567890a')
      ('12', '345678', '90a')
      >>> amino_acid_sequence('1234567890ab')
      ('12', '3456789', '0ab')
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2019-07-07
        • 2019-02-18
        • 1970-01-01
        • 2019-07-11
        • 2011-04-11
        • 1970-01-01
        • 2020-08-28
        • 1970-01-01
        • 2020-09-15
        相关资源
        最近更新 更多