删除数字字符串python

时间:2016-10-06 22:22:20

标签: python string

对于我的作业,我必须创建一个函数,该函数返回一个与给定字符串相同但删除了数字的新字符串。

示例:删除数字('abc123')将返回字符串'abc'。

我已经尝试了几乎所有我能想到但却无法正常工作的东西:(

def test(str):
    for ch in str:
        num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']
        if ch == num[0]:
            return str.replace(ch, '')
        elif ch == num[1]:
            return str.replace(ch, '')
        elif ch == num[2]:
            return str.replace(ch, '')
        elif ch == num[3]:
            return str.replace(ch, '')
        elif ch == num[4]:
            return str.replace(ch, '')
        elif ch == num[5]:
            return str.replace(ch, '')
        elif ch == num[6]:
            return str.replace(ch, '')
        elif ch == num[7]:
            return str.replace(ch, '')
        elif ch == num[8]:
            return str.replace(ch, '')

我输入test('abc123'),期望输出为'abc'。但我得到'abc23'作为我的输出。

在其他尝试中,同样的问题:

def test(str):
    for char in str:
        num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']
        if char in list(num):
            return str.replace(char, '', len(str))

我得到了相同的结果。

任何人都可以帮助我吗?这将不胜感激。

5 个答案:

答案 0 :(得分:6)

使用正则表达式

import re
def test(str):
    string_no_numbers = re.sub("\d+", " ", str)
    print(string_no_numbers)
test('abc123') #prints abc

答案 1 :(得分:1)

你的第二个解决方案已经结束了:

 <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.hamza.collapsingprofile.ScrollingActivity"
    tools:showIn="@layout/activity_scrolling">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/profile_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:background="#fff"
        android:elevation="4dp"
        android:paddingBottom="24dp">
        <ImageView
            android:id="@+id/user_profile_photo"
            android:layout_width="120dp"
            android:layout_height="120dp"

            android:layout_centerHorizontal="true"

            android:background="@drawable/profile_circular_border_imageview"
            android:elevation="5dp"
            android:padding="20dp"
            android:scaleType="centerCrop"
            android:src="@drawable/hamza" />



        <TextView
            android:id="@+id/user_profile_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="45dp"
            android:text="Viral Android"
            android:textColor="#000000"
            android:textSize="24sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/user_profile_short_bio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/user_profile_name"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="12dp"
            android:text="Android free tutorials and example"
            android:textColor="#000000"
            android:textSize="14sp" />
    </RelativeLayout>


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/profile_layout"
        android:layout_marginTop="5dp"
        android:orientation="vertical">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_marginBottom="3dp"
            android:layout_marginTop="3dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile XMl UI Design" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_marginBottom="3dp"
            android:layout_marginTop="3dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile XMl UI Design" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#fff"
            android:clickable="true"
            android:elevation="4dp"
            android:padding="20dp"
            android:text="Android Profile UI Design" />
    </LinearLayout>
</RelativeLayout>

</android.support.v4.widget.NestedScrollView>

最初的问题是,您只需更换“&#39; 1&#39;字符。

您也可以使用列表理解来执行此操作:

def drop_digits(in_str):
    digit_list = "1234567890"
    for char in digit_list:
        in_str = in_str.replace(char, "")

    return in_str

答案 2 :(得分:1)

使用此

return ''.join([char for char in in_str if not char.isdigit()])

答案 3 :(得分:0)

你需要阅读一些python基础知识。 &#34;返回&#34;退出你的功能,所以它只会修改一个条目。

这里有一个提示:用更新的副本替换str而不是返回它。

string = ''.join([c for c in string if c not in "1234567890"])

答案 4 :(得分:-1)

def test(string):
    return ''.join((letter for letter in string if not letter.isdigit()))