如何检测字符串中的数字或字母?我知道你使用ASCII码,但是哪些功能利用了它们?
我有一个包含字符串格式的数字和字母的列表.
mylist=['1','orange','2','3','4','apple']
Run Code Online (Sandbox Code Playgroud)
我需要提出一个只包含数字的新列表:
mynewlist=['1','2','3','4']
Run Code Online (Sandbox Code Playgroud)
如果我有办法检查列表中的每个项目是否可以转换为Integer,我应该能够通过执行以下操作来提出我想要的内容:
for item in mylist:
if (check item can be converted to integer):
mynewlist.append(item)
Run Code Online (Sandbox Code Playgroud)
如何检查字符串是否可以转换为整数?或者有更好的方法吗?
我只是python的初学者,我想知道是否可以从列表中删除所有整数值?例如,文件就像
['1','introduction','to','molecular','8','the','learning','module','5']
Run Code Online (Sandbox Code Playgroud)
删除后我希望文档看起来像:
['introduction','to','molecular','the','learning','module']
Run Code Online (Sandbox Code Playgroud) 在Python中,我想转换一个字符串列表:
l = ['sam','1','dad','21']
Run Code Online (Sandbox Code Playgroud)
并将整数转换为整数类型,如下所示:
t = ['sam',1,'dad',21]
Run Code Online (Sandbox Code Playgroud)
我试过了:
t = [map(int, x) for x in l]
Run Code Online (Sandbox Code Playgroud)
但是显示错误.
如何将列表中的所有intable字符串转换为int,将其他元素保留为字符串?
我的清单可能是多维的.适用于通用列表的方法更可取:
l=[['aa','2'],['bb','3']]
如果某些元素是非数字的,我想在循环内部使用lambdas返回:
strs = ['1234', 'hello', '6787']
Run Code Online (Sandbox Code Playgroud)
我可以使用for循环并遍历每个元素:
for elem in strs:
Run Code Online (Sandbox Code Playgroud)
并检查elem.islpha().
但是,有没有办法使用lambdas耦合for循环来返回单词"hello"?
我在python 3中有这个代码,检查输入错误但我需要确定输入是一个整数,如果不是打印错误消息.
任何人都可以帮助我弄清楚我的while循环中的代码.谢谢
price = 110;
ttt = 1;
while price < 0 or price > 100:
price = input('Please enter your marks for Maths:');
ttt =ttt +1;
if ttt >= 2:
print( 'This is an invalid entry, Please enter a number between 0 and 100')
Run Code Online (Sandbox Code Playgroud) 我有一个数组如下:
In [1]: x = array(['1.2', '2.3', '1.2.3'])
Run Code Online (Sandbox Code Playgroud)
我想测试数组中的每个元素是否可以转换为数值。也就是说,函数:is_numeric(x)将返回True / False数组,如下所示:
In [2]: is_numeric(x)
Out[2]: array([True, True, False])
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
我需要在Pandas中选择列中只包含数值的列,例如:
df=
0 1 2 3 4 window_label next_states ids
0 17.0 18.0 16.0 15.0 15.0 ddddd d 13.0
1 18.0 16.0 15.0 15.0 16.0 ddddd d 13.0
2 16.0 15.0 15.0 16.0 15.0 ddddd d 13.0
3 15.0 15.0 16.0 15.0 17.0 ddddd d 13.0
4 15.0 16.0 15.0 17.0 NaN ddddd d 13.0
Run Code Online (Sandbox Code Playgroud)
所以我只需要选择前五列.就像是:
df[df.columns.isnumeric()]
Run Code Online (Sandbox Code Playgroud)
编辑
我提出了解决方案:
digit_column_names = [num for num in list(df.columns) if isinstance(num, (int,float))]
df_new = df[digit_column_names]
Run Code Online (Sandbox Code Playgroud)
不是非常pythonic或pandasian,但它的工作原理.
我正在构建一个使用 django 模板/动态页面(没有 SPA 技术)的社交网站。我有一些 ajax 调用来检查用户的新闻提要或新消息。这些示例 GET Web 请求如下所示:
GET /feeds/check/?last_feed=3&feed_source=all&_=1500749662203 HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
这是我在视图中接收它的方式:
@login_required
@ajax_required
def check(request):
last_feed = request.GET.get('last_feed')
feeds = Feed.get_feeds_after(last_feed)
Run Code Online (Sandbox Code Playgroud)
一切正常,但我想保护它,以便在恶意用户将 GET 参数设置为 last_feed="123malicious4556" 时函数 get_feeds_after 不会崩溃。目前它崩溃了,因为在 Feed 模型中,该函数执行以下操作:
@staticmethod
def get_feeds_after(feed):
feeds = Feed.objects.filter(parent=None, id__gt=float(feed))
return feeds
Run Code Online (Sandbox Code Playgroud)
并因错误而崩溃:
ValueError at /feeds/check/
invalid literal for float(): 2fff2
Run Code Online (Sandbox Code Playgroud)
我目前通过直接对 GET 变量执行检查并处理 int() 转换上的异常来解决这个问题:
def check(request):
last_feed = request.GET.get('last_feed')
try:
feed_source = int(request.GET.get('last_feed'))
except ValueError:
return HttpResponse(0)
Run Code Online (Sandbox Code Playgroud)
我的问题是 django 推荐的最佳解决方法是什么?我知道 django 有特殊的支持表单验证。但这在这里似乎不太正确,因为 GET 调用更像是一个 api 而不是表单,因此为这些 GET 参数定义表单似乎是一个坏主意。 …
假设我有一个列表如下:
a = ['111', 213, 74, '99', 't', '88', '-74', -74]
Run Code Online (Sandbox Code Playgroud)
该列表包含数字类型的字符串,数字和数据类型的字符串.
我认为类似数字的字符串可以转换数字,所以它可以看作一个数字.
这是我的方法:
a = ['111', 213, 74, '99', 't', '88', '-74', -74]
def detect(list_):
for element in list_:
try:
int(element)
except ValueError:
return False
return True
print detect(a)
Run Code Online (Sandbox Code Playgroud)
但它看起来如此冗长且难以理解,所以任何人都有更好的方法来检测它?
另外,我的列表包含负数和负数字的字符串,我该怎么办?