所以我有一项任务,这是要求,
对于这个程序,我们将生成更多有关列表的统计信息。该程序将使用一个用户输入的列表,另一个是一组单词。程序将计算输入列表中每个单词集中存在的单词的次数,并显示这些结果。
需要注意的其他一些事情是我不能使用其他数据结构,例如Python的字典。
以下是我到目前为止的草稿,
public class AIssue extends Activity {
String result = " DATA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some);
findViewById(R.id.button1).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View arg0) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
AIssue.this);
alertDialogBuilder.setCancelable(false);
alertDialogBuilder.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
GetDataJSON g = new GetDataJSON();
g.execute();
}
});
alertDialogBuilder.create().show();
}
});
}
// Getting the users
private class GetDataJSON extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.e("IN", "ONPRE EXECUTE");
}
@Override
protected String doInBackground(Void... params) {
String result = "SOME DATA";
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000);
Log.e("IN", "DO IN BACKGROUND");
} catch (InterruptedException e) {
e.printStackTrace();
result = "ERROR";
}
}
return result;
}
@Override
protected void onPostExecute(String result) {
Log.e("IN", "ON POST EXECUTE");
Log.e("IN", "" + result);
/*****
* Your Condition to Check The Friend should be here after
* showList2();
* ***/
if (result.equalsIgnoreCase("SOME DATA"))// replace it with your
// condition to check
// friends
{
Log.e("IN", "IF");
} else {
Log.e("IN", "ELSE");
}
}
}
}
我还是相当陌生的Python,(大约几个星期的练习),我有点难过。我知道它与第三个功能有关,但我似乎无法使它工作。任何帮助将不胜感激。
另外,这是我在Stackoverflow上提出的第一个问题,因此任何其他提出问题礼仪的建议也将受到赞赏。
感谢。
答案 0 :(得分:1)
我希望我能正确理解你(计算输入列表中每个单词集中存在的单词的次数),但这可能会有所帮助:
# Two lists to compare:
list1 = ['Words', 'in', 'list', 'one']
list2 = ['Words', 'in', 'list', 'two']
# Make a new list of all the common elements and take the length:
print len([i for i in list1 if i in list2])
>>> 3
对不起,如果我误解了。如果你想要一个速记方式,那么列表推导是有用的。 以下可能是您想要的:
list1 = ['Words', 'list', 'oh', 'one']
list2 = ['Words', 'list', 'list', 'two']
print [list2.count(i) for i in list1]
>>> [1, 2, 0, 0]
了解这里发生什么的简单方法;首先是list1中项目的for i in list1
个循环。然后list2.count(i)
计算list2中每个项目的出现次数。 [ ]
表示返回一个新列表,因此以列表格式[1, 2, 0, 0]
答案 1 :(得分:0)
您的错误似乎来自对return
关键字的作用的误解!
return
将值传递回函数的调用者,退出函数。也就是说,一旦你调用return
,函数的其余部分就不会运行了!
尝试修复您的代码,并告诉我您是否遇到更多麻烦:)